我有一个的tableview在UITableViewCell
包含一个文本框。当用户点击文本框并出现键盘时,在设置适当的内容插入后,滚动到所点击的行。滚动使用的UITableView沿着一个UIView滚动
现在,我有我需要做相应的调整表时滚动我的表视图的顶部显示一个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'管理键盘。它很容易使用 – kai
如果您使用'autoLayout',您不应该通过操纵其框架来改变视图位置。 – Rikh
如果您想要与视图一起滚动视图,为什么不使用tableViewheader。把你的视图放到tableViewHeader中,当视图滚动时,视图将沿着tableView滚动 –