UIView начинающих анимаций: подпредставление не должно оживлять
Привет, у меня есть UIView, к которому я добавляю UIButton в его initWithFrame:
метод как это:
UIButton * dropB = [UIButton buttonWithType:UIButtonTypeRoundedRect];
dropB.frame = CGRectMake(190, 22, 52, 22);
dropB.backgroundColor = [UIColor clearColor];
dropB.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:11];
[dropB setTitle:@"DROP" forState:UIControlStateNormal];
[dropB addTarget:viewController
action:@selector(dropSelectedObject)
forControlEvents:UIControlEventTouchUpInside];
[self addSubview:dropB];
Затем, когда я пытаюсь анимировать вид с изменением размера, вот так:
[UIView beginAnimations:@"MoveIt" context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationBeginsFromCurrentState:YES];
self.dropButton.center = CGPointMake(self.dropButton.center.x + 80, self.dropButton.center.y -10);
self.frame = CGRectMake(0, 0, WIDTH, HEIGHT);
self.center = CGPointMake(CENTER_X, CENTER_Y);
[UIView commitAnimations];
Кнопка переводится только в новую позицию, которая является предыдущей (исходные координаты были относительно предполагаемого вида). Как я могу заставить его перевести на точку, которую я указал?
1 ответ
Решение
Хорошо, это было довольно просто (и глупо).
Так как мне нужно, чтобы UIButton оставался на фиксированной высоте, я должен был указать, какое пространство было "гибким" при изменении размера. Это можно сделать с помощью autoresizingMask
Свойство UIView таким образом:
dropB.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin |UIViewAutoresizingFlexibleBottomMargin;
и не вызывая anithing среди инструкций анимации