【发布时间】:2014-09-29 22:29:28
【问题描述】:
我正在尝试添加一个有弹性的行为(碰撞检测)来查看包含所有内容,如按钮和名为 ViewContent 的图像[它应该从顶部掉落并与屏幕底部碰撞/反弹]。
这是我的视图层次结构:
和代码:
viewController.h
@interface LoginViewController : UIViewController <UIScrollViewDelegate, UICollisionBehaviorDelegate>
@property (weak, nonatomic) IBOutlet UIView *viewContent;
@property (nonatomic, strong) UIDynamicAnimator *animator;
@end
在情节提要中,我将 viewContent 框架设置为 (0, -568, 320, 568),所以它应该来自顶部
viewController.m
@implementation LoginViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.view];
UIGravityBehavior *gravityBehavior = [[UIGravityBehavior alloc] initWithItems:@[viewContent]];
gravityBehavior.gravityDirection = CGVectorMake(0.0, 1.0);
[self.animator addBehavior:gravityBehavior];
UICollisionBehavior *collisionBehavior = [[UICollisionBehavior alloc] initWithItems:@[viewContent]];
collisionBehavior.translatesReferenceBoundsIntoBoundary = YES;
collisionBehavior.collisionDelegate = self;
[self.animator addBehavior:collisionBehavior];
UIDynamicItemBehavior *contentViewBehavior = [[UIDynamicItemBehavior alloc] initWithItems:@[viewContent]];
contentViewBehavior.elasticity = 0.4;
[self.animator addBehavior:contentViewBehavior];
结果什么也没发生。我正在关注本教程http://www.teehanlax.com/blog/introduction-to-uikit-dynamics/ 并能够在带有框架(100, 100, 100, 100) 的正方形上添加碰撞检测,但无法在具有框架(0, 0, 320, 568) 的视图上添加碰撞。
我是新手,想不通,请有任何想法/建议。
更新
按照@Fogmeister 的建议添加了笔尖视图。
我添加了一个名为 LoginView 的单独 nib 视图文件并分配了 LoginViewController 类,以便我能够从该 Nib 添加 IBOutlets 和 IBActions。
在LoginViewController's ViewDidLoad 方法中刚刚在[super viewDidLoad 下方添加了这些行
self.content = [[[NSBundle mainBundle]
loadNibNamed:@"ViewLogin"
owner:self options:nil]
firstObject];
[self.view addSubview:self.content];
其余代码保持不变,除了 initWithItems viewContent 被这个新创建的视图 self.content 替换。
【问题讨论】:
标签: ios iphone user-interface uikit uikit-dynamics