私はそれらの上のセルの前に下のセルを維持しようとしています。私は理想的には下のセルの後ろに行くセルにサブビューを持っています。私はこれを行うためのコードをどこに置くべきかを見つけるのが難しいです。私はこのコードのスニペットを使用することが出来るのですと思う:他のセルの前にUITableViewCellを保持します
for i in 0 ..< arrayWarningTitles.count{
let cell = tableView.cellForRowAtIndexPath(NSIndexPath(forRow: i, inSection: 0))
self.tableView.bringSubviewToFront(cell!)
}
を、私はわからないところ、私はいくつかの異なる場所を試してみましたし、どれも(willDeselectRowAtIndexPathとdidSelectRowAtIndexPath)働いていない、と私はそれのようにも同じように最初のロードアップでも同様です。どんな提案も大歓迎です!
UPDATE(追加されたテーブルコードの表示):それは働いていないとして、それは誰にも役立ちます場合はここで
は、私のテーブルビューのコードの大部分で、私は上記のスニペットを削除しました。
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
selection = indexPath.row
tableView.beginUpdates()
tableView.endUpdates()
// self.tableView
}
override func tableView(tableView: UITableView, willDeselectRowAtIndexPath indexPath: NSIndexPath) -> NSIndexPath? {
tableView.beginUpdates()
tableView.endUpdates()
return indexPath;
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
cell.selectionStyle = UITableViewCellSelectionStyle.None
cell.backgroundColor = UIColor.clearColor()
// Configure the cell...
let warningTitle = self.view.viewWithTag(1) as? UILabel
let expirationTime = self.view.viewWithTag(2) as? UILabel
let textView = self.view.viewWithTag(5) as? UITextView
let grayBackground = self.view.viewWithTag(6)
let redBackground = self.view.viewWithTag(7)
warningTitle?.text = arrayWarningTitles[indexPath.row]
redBackground!.layer.masksToBounds = true;
redBackground!.layer.cornerRadius = 20;
grayBackground!.layer.masksToBounds = true;
grayBackground!.layer.cornerRadius = 20;
redBackground?.clipsToBounds = false;
cell.clipsToBounds = false;
cell.contentView.clipsToBounds = false;
cell.contentView.superview?.clipsToBounds = false;
self.tableView.bringSubviewToFront(cell)
return cell
}
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
if (indexPath.row == selection) { //change 0 to whatever cell index you want taller
return UIScreen.mainScreen().bounds.height - 140 - 64;
}
return 58;//Choose your custom row height
}
セルが重なっているのはなぜですか?あなたは何を持っているのか、何を達成しようとしているのかについてもっと話すことができますか? –
縦のカードタイプのビューを作成したいと思います。情報は下のセルのすぐ上に表示されます。 – JordanWx
私はあなたの完全な実装を見ることなく確実に言うことはできませんが、私の本能は 'tableView(_:willDisplay:forRowAt:)'に置くことです。しかし、これはハックです - 'UITableView'は本当にそのようなレイアウトをサポートしていません。より堅牢なソリューションは 'UICollectionView'を使用するでしょう –