Я пытаюсь добавить надуманное поведение (обнаружение столкновения) для просмотра, которое содержит все содержимое, такое как кнопки и изображения с именем ViewContent
[оно должно падать сверху и сталкиваться/отскочить внизу экрана].iOS UIKit Dynamics - не удается добавить оживленное поведение для просмотра
Вот мой вид Иерархия:
и код:
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)
.
Я новичок и не могу понять, любые идеи/предложения, пожалуйста.
Update Nib вид добавлен как предложил @Fogmeister.
Я добавил отдельный файл представления nib, названный как LoginView
, и назначил класс LoginViewController
, чтобы я мог добавлять IBOutlets и IBActions из этого Nib.
В 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
.
спасибо за большое предложение. Удаление автозапуска не является вариантом, поэтому я перейду к отдельному варианту nib. – NSIceCode
Я создал отдельный файл острия и назначен тот же класс к этому бобах т.е. LoginViewController и в методе ViewDidLoad я добавил эти строки: self.content = [[[NSBundle mainBundle] \t \t \t \t \t loadNibNamed: @ "ViewLogin " \t \t \t \t \t владелец: опции самостоятельно: ноль] \t \t \t \t \t firstObject]; \t \t [self.view addSubview: self.content]; и ничего не происходит :( – NSIceCode
Мне нужно будет увидеть больше, вы можете отредактировать свой вопрос. – Fogmeister