2017-07-25 82 views
2

我遇到了一个非常奇怪的现象。我在我的tableview中使用了AutomaticDimension函数,并且出于某种奇怪的原因,它适用于除3之外的所有单元格。我所有的单元格都具有完全相同的约束,这是奇怪的部分。我试图改变对单元格的约束,但似乎它们被忽略。任何见解都会很棒。我一定要在viewdidload中调用auto维度函数。UITableView上的某些单元格不会自动调整大小

override func viewDidLoad() { 
    super.viewDidLoad() 


    self.TableView.dataSource = self 

    TableView.estimatedRowHeight = 200.0 
    TableView.rowHeight = UITableViewAutomaticDimension 
} 

这里是不工作的一类:

class foursleepCell: UITableViewCell { 
@IBOutlet weak var foursleepLabel: UILabel! 
@IBOutlet weak var foursleepScale: UISegmentedControl! 

var delegate: foursleepCellToController? 

@IBAction func foursleepValueChanged(_ sender: UISegmentedControl) { 
    if let delegate = delegate { 
     let indexPath = delegate.indexOfChangedfoursleepCell(at: self) 
     delegate.savefoursleepCellResponse(at: indexPath, response: foursleepScale.selectedSegmentIndex) 
    } 
} 
} 

附上约束和输出的图像:

Label Constraints

Segmented Control Constraints

Actual Output

Working Output

+0

我一直有可能是相同的问题(问几天前类似的问题,但没有得到答案)。根据你的图片,一些约束在运行时不存在。我猜这是问题的根源 - 没有从上到下的限制,自动调整大小无法工作。 – John

+0

你可以尝试设置estimatedRowHeight = 40吗? –

+0

我试过了。没有修复任何东西 –

回答

0

我不认为有什么不对您尝试设置单元格自动调整的方式,它仅仅是事实所必需的,顶部至底部约束调整大小不会在运行时出现。显然这是Xcode中有时可能发生的事情 - 尝试创建一个新的表格视图单元格,并从头开始重新设置所有视图和约束。将表格视图单元格复制并粘贴到一个新的单元格中并从副本中进行工作并没有为我修复 - 它的行为完全相同。但设置它新鲜的伎俩。

相关问题