我有一個的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滾動 –