私はこれを一緒に投げました。それはどのように行うのかの例です。しかし、UITableviewはこのように使われることは意図されていませんでした。セル0はカスタムビューでカバーされていることがわかります。あなたは、あなたのデータソースからtableviewを埋めるときにそれを考慮する必要があります。
import UIKit
class testTableVIewController: UITableViewController {
@IBOutlet var theTableView: UITableView!
var profileView:UIView
required init?(coder aDecoder: NSCoder) {
profileView = UIView(frame: CGRectMake(0,0,500,45))
profileView.backgroundColor = UIColor(red:0.35, green:0.77, blue:0.66, alpha:1)
super.init(coder: aDecoder)
}
override func viewDidLoad() {
super.viewDidLoad()
self.theTableView.addSubview(profileView)
}
override func scrollViewDidScroll(scrollView: UIScrollView) {
profileView.frame = CGRectOffset(profileView.frame, scrollView.contentOffset.x, 0);
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 20
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = theTableView.dequeueReusableCellWithIdentifier("cell")
cell?.textLabel?.text = String(indexPath.row)
return cell!
}
}
代わりにあなたが何をすべきか、テーブルビューのサブビューとしてビューを置きます。
- ビューを作成します。 (私は便宜のためにこのコンテンツビューを呼び出します)
- このビューにコンテンツビューを追加します。
- コンテンツビューにtableviewを追加します。
コンテンツビュー内で、ビューとテーブルのビューを隣り合わせに配置するだけです。 これは、スクロール・テーブル・ビューと静的ビューとの間に所望の効果をもたらす。逆のステップ2 & 3目的のエフェクトがテーブルビュー上のフローティングビューである場合。
Oh btw。あなたがコード内でそれをすべてやっているのであれば、そのようなレイアウトに変更するのは簡単です。あなたのテーブルビューコントローラをビューコントローラに変更し、UITablviewプロトコルを採用するだけです。
class testTableVIewController: UITableViewController {
class testTableVIewController: UIViewController,UITableViewDataSource,UITableViewDelegate {
次に、tableviewクラスのプロパティを追加します。また、正しい位置のself.viewに追加します。あなたの緑色のビューをself.view
に追加することを覚えておいてください。そのような場合は、コードをまったく変更する必要はありません。
私が探しているのは、ViewControllerを作成して現在のロジックのほとんどを変更する必要があるためです。 UIViewControllerではなく、UITableviewController以降、これを行う簡単な方法があるはずです。 – eddwinpaz
あなたが探していることは実際にはより困難です。スクロール位置を追跡し、テーブルビューがスクロールするとビューを移動する必要があります。そのためにはscrollViewDidScrollを使用してください。私が言っているように、実際にはそれを変更するコードはほとんどありません。 – kent
質問を編集して新しい画像を追加しました – eddwinpaz