У меня есть UIView
, который я хотел бы переместить вверх/вниз, появляется или исчезает UIKeyboard
. К сожалению, я не могу заставить его работать. До AutoLayout
это было без проблем, но с AutoLayout
У меня есть некоторые проблемы с этим.Перемещение UIView при появлении клавиатуры с AutoLayout
Вот то, что я до сих пор:
- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification object:nil];
self.keyboardIsShown = NO;
}
-(void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillHideNotification
object:nil];
}
-(void)keyboardWillShow:(NSNotification*)notification{
if (self.keyboardIsShown) {
return;
}
//change y Position of self.loginView
self.keyboardIsShown = YES;
}
-(void)keyboardWillHide:(NSNotification*)notification{
//Change y Position of self.loginView
self.keyboardIsShown = NO;
}
Конечно методы дозвонились, но мне нужно некоторое руководство о том, как изменить у-позиции моего UIView
. Простое изменение положения y кадра не работает вообще.
Здесь вы можете найти мою настройку интерфейса с ограничениями, которые я добавил в UIView.
Таким образом, все компоненты для UIImageView
кроме содержатся в loginView Outlet
.Это мнение я хотел бы, чтобы двигаться вверх или вниз в зависимости от клавиатуры отображается или нет.
Что делает это для меня трудным, так это то, что, как вы могли видеть, UIImageView имеет фиксированную высоту, ширину и центр по вертикали.
dont forget '- (void) viewWillLayoutSubviews' – 0yeoj
С автоматической компоновкой вы не настраиваете рамки просмотра. Вместо этого отрегулируйте ограничения, которые вызывают рамки представления (в этом случае, возможно, верхнее пространство для константы супервизора будет уменьшаться). Или разместите представления в режиме прокрутки и прокрутите их. – danh
Да, я пойду с этим решением. Похоже, это самая простая вещь. На данный момент обновление ограничений не работает для меня. – dehlen