调整视图高度
问题描述:
我有一张桌子,下面是他们的bottomView。我的目标是在键盘上向上移动bottomview。但是当我们调整键盘时,此方法会更向上调用我的底部视图。调整视图高度
[self.tableView setContentInset:UIEdgeInsetsMake(0.0, 0.0, keyBoardheight, 0.0)];
然后动画自定义底部的Y位置:我我也使用
- (void)textViewDidChange:(UITextView *)textView
{
CGFloat fixedWidth = textView.frame.size.width;
CGSize newSize = [textView sizeThatFits:CGSizeMake(fixedWidth, MAXFLOAT)];
CGRect newFrame = textView.frame;
newFrame.size = CGSizeMake(fmaxf(newSize.width, fixedWidth), newSize.height);
textView.frame = newFrame;
CGRect frame1 = [UIScreen mainScreen].bounds;
bottomView.frame=CGRectMake(0, frame1.size.height-keyBoardHeight-20-newSize.height, self.view.frame.size.width, newSize.height+50);
}
答
您需要在您的表视图首先添加的空间,让滚动卡
- (void)keyboardWasShown:(NSNotification*)aNotification
{
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
keyBoadSize =kbSize.height;
[UIView animateWithDuration:0.2f animations:^{
CGRect frame=bottomView.frame;
keyBoardHeight = keyBoadSize;
frame.origin.y -=keyBoadSize;
bottomView.frame=frame;
frame = tableViews.frame;
frame.size.height -= keyBoardHeight;
tableViews.frame = frame;
}
视图。
作为一个附注,在您的示例代码keyBoadSize
是误导。它应该是keyBoardheight
。
PS:不要忘记在键盘解除时重置滚动空间,如下所示:[self.tableView setContentInset:UIEdgeInsetsZero];
。
+0
它很适合桌面视图,但不适合底部视图 –
+0
自定义视图是您桌子视图的一部分。除非您不会在可滚动内容中添加空间,否则视图将无法正确滚动。如果您阅读我的回复,我仍然要求您为自定义底部视图的Y位置设置动画。 – Abhinav
@ElCaptain我没有使用约束 –
您需要正确设置tableview的'contentInset'。将其高度组件设置为键盘的高度。 – Abhinav
@Abhinav请帮忙 –