簡體   English   中英

帶有UITableviewController Swift頂部標簽的UIView

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM