У меня странная проблема со сдвигом в UIView
в другой, когда вы выходите из другого содержимого.Вызов нескольких [UIVIew setFrame:] в строке не исполняет их всех
Это код:
- (void)moveAddStudentViewIntoSuperView
{
CGRect viewFrame1 = self.viewThatShoudlDisappear1.frame;
CGRect viewFrame2 = self.viewThatShoudlDisappear2.frame;
CGRect newFrame = self.viewControllerThatshouldAppear.view.frame;
viewFrame1.origin.x = -300;
viewFrame2.origin.x = -300;
newStudentFrame.origin.x = 0;
NSLog(@"\n 1: %@ \n 2: %@ \n 3: %@", self.viewThatShoudlDisappear1, self.viewThatShoudlDisappear2, self.viewControllerThatshouldAppear.view);
[self.viewThatShoudlDisappear1 setFrame:viewFrame1];
[self.viewThatShoudlDisappear2 setFrame:viewFrame2];
[self.viewControllerThatshouldAppear.view setFrame:newFrame];
NSLog(@"\n 1: %@ \n 2: %@ \n 3: %@", self.viewThatShoudlDisappear1, self.viewThatShoudlDisappear2, self.viewControllerThatshouldAppear.view);
}
(Обычно я делать setFrame
с в UIView
анимации, но это не имеет значения для этого примера, как это все равно не работает)
Случается, что вид, который должен скользить или, скорее, находится сейчас, находится в (0,0)
, но другие виды не отходят. И все еще отображаются под новым видом.
Странно, что лог выводит, что все виды находятся в правильном положении. [self.view setNeedsLayout]
между вызовами setFrame
тоже ничего не меняет, и еще интереснее то, что если я удалю setFrame
из нового представления, то исчезающие взгляды действительно исчезнут правильно.
Очевидно, я не был сконцентрирован, когда писал это. Пример кода должен быть правильным. Сожалею. – Phil
Вы пробовали просить их перекрасить? –