PrototypeセルにIBでUIViewを作成し、制約を追加しました。セルにはカスタムクラスがあります。 cellForRowAtIndexPathのUIViewの幅を取得しようとすると、251ではなく476が返されます。この件名と多くの回答でSOを読み取った後、cellForRowAtIndexPathまたはサブクラスでsetNeedsLayoutおよびlayoutSubviews()を呼び出そうとしましたが、どちらも戻りません正しい値。高さ20は正しいです。どんな助けも大変ありがとう!UITableViewCell swiftでUIViewの正しい幅を取得する方法
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("EventCell") as! CustomResultsTVCell
// cell.setNeedsLayout()
let maxWidth = cell.barView.frame.width
print("barview maxWidth is \(maxWidth)")
// prints 476.0
あなたが直面している問題は何ですか?内部にアイテムが正しく表示されていませんか? – jo3birdtalk
セルビューのautolayoutプロパティを確認しましたか?幅の制約はありますか? – triandicAnt
@ jo3birdtalk - 問題は、iphone5Sで実行されているデバイスの画面幅が320であることです。また、maxwidthはそれよりもはるかに大きく表示されています。 – richc