【发布时间】:2017-05-12 13:19:10
【问题描述】:
我有一个表视图,其中UITableViewCell 包含一个文本字段。当用户点击文本字段并出现键盘时,我在设置适当的内容插入后滚动到点击的行。
现在,我的表格视图顶部显示了一个 UIView,我需要在表格滚动时进行相应调整。
为此,我实现了scrollViewDidScroll: 方法,如下所示。虽然这在某些情况下有效,但在某些情况下它不起作用或给出随机结果。我在这里做错了吗?
- (void)scrollViewDidScroll:(UIScrollView *)iScrollView {
if (self.hollowView) {
CGPoint offset = iScrollView.contentOffset;
CGRect hollowViewFrame = self.hollowView.hollowFrame;
hollowViewFrame.origin.y += self.previousOffset - offset.y;
self.previousOffset = offset.y;
[self.hollowView resetToFrame:hollowViewFrame];
}
}
- (void)keyboardDidHide:(NSNotification *)iNotification {
self.previousOffset = 0.0;
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardDidHideNotification object:nil];
}
【问题讨论】:
-
尝试使用
IQKeyboardManager管理键盘。使用方便 -
如果您使用
autoLayout,则不应通过操作其框架来更改视图位置。 -
如果你想与表格视图一起滚动视图,为什么不使用 tableViewheader。将您的视图放入 tableViewHeader 中,视图将随着表格滚动而沿 tableView 滚动
标签: ios objective-c iphone uitableview uiview