[英]Add a UIView over the top of UITableViewController in Swift
[英]UIView with labels at top of UITableviewcontroller Swift
我試圖在滾動時在UITableViewController的頂部保留一個帶有標簽,segmentedControl和按鈕的UIView。 我無法將ViewController與UITableView一起使用,因為我的TableViewCells是靜態的,其中包含UITextFields。 我知道這可以通過ViewController和ContainerViewController來完成,但是,這使需要在視圖之間傳遞的數據量變得復雜。 我正在尋找swiftViewDidScroll解決方案。
這是我到目前為止所擁有的。 我已經在情節提要板上創建了View(也許這是問題的一部分。)labelView通過插座連接。
override func scrollViewDidScroll(scrollView: UIScrollView) {
var rect = self.labelView.frame
rect.origin.y = min(0,scrollView.contentOffset.y + scrollView.contentInset.top);
self.labelView.frame = rect;
}
如果您只有一個部分,則可以嘗試將視圖添加到部分標題中。 是的,你必須改變很多事情,但是它將100%起作用
我想到了。
首先,我將虛擬的空白視圖放置在希望放置的位置。 我這樣做了,否則它將自己置於tableview的頂部。 我相信您也可以在代碼中設置偏移量,但這似乎更容易。 然后,我在tableViewController外部創建了一個單獨的視圖,並設置了標簽和按鈕。 通過插座連接此視圖。 這是添加視圖並在滾動時保持其位置的代碼。
@IBOutlet var labelView: UIView!
override func viewDidLayoutSubviews() {
self.view.addSubview(labelView)
labelView.frame.size.width = self.view.frame.size.width
}
override func scrollViewDidScroll(scrollView: UIScrollView) {
var rect = self.labelView.frame
rect.origin.y = max(0,scrollView.contentOffset.y + scrollView.contentInset.top)
self.labelView.frame = rect
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.