5

複数の行を折り返すテキストをすべて含めることができる、UITableViewCell垂直に積み重ねられた多数のsを持つカスタムが必要です。UILabeliOS9の新UIStackView機能とセルのセルフサイジング メカニズムにより、これは簡単だと思いましたが、機能させることができません。Xcode 7beta3 を使用しています。

ラベルが折り返されていないテーブル ビュー

簡単なテストアプリを作成しました。これは IB でのセットアップです。

試作セルによる IB セットアップ

はand とUIStackView垂直ですが、基本的にすべての組み合わせを試しましたが成功しませんでした。UIStackViewDistribution.FillUIStackViewAlignment.Fill

にはとUILabelnumberOfLines = 0ありlineBreakMode = .ByWordWrappingます。

コード:

class Cell: UITableViewCell {

    @IBOutlet var label1: UILabel!
    @IBOutlet var label2: UILabel!
}

class MasterViewController: UITableViewController {

    struct Data {
        let label1: String
        let label2: String
    }

    var objects = [Data]()

    override func viewDidLoad() {
        super.viewDidLoad()

        tableView.rowHeight = UITableViewAutomaticDimension
        tableView.estimatedRowHeight = 60

        createData()
    }

    private func createData() {

        for ii in 0 ..< 20 {

            let data = Data(label1: "\(ii): hello world this is a longer string that should wrap without going weird", label2: "label2 has lots of writing as well and so should wrap onto multiple lines")
            objects.append(data)
        }
    }

    // MARK: - Table View

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return objects.count
    }

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! Cell
        let data = objects[indexPath.row]

        cell.label1?.text = data.label1
        cell.label2?.text = data.label2

        return cell
    }
}

ベータ版にバグがあるのではないかと思います。ラベルの 1 つが折り返され、もう 1 つが折り返されないことがあるためです。

たとえば、次のようUIStackViewに別のものをネストしようとしました。UIStackView

IB でネストされた UIStackView

コードの変更はまったく行いませんでした。現在、一方のラベルは折り返されていますが、もう一方は折り返されていません。

ワンラベルラッピングのみ

どんな助けでも大歓迎です!

4

1 に答える 1