Context:Popup View с Header-TableView-Footer и AutoLayout не работает
У меня есть всплывающее представление, содержащее TableView. Я бы хотел, чтобы всплывающее представление было меньше высоты экрана, но хотелось бы, чтобы tableview масштабировался с количеством строк, которые он имеет. (Если представление таблицы содержит 2 строки, то оно будет соответствовать этим двум строкам и не будет прокручиваться, если в представлении таблицы 30 строк он будет максимальным на высоте экрана и разрешить прокрутку).
Просмотр иерархии:
- viewContainer (clear background, whole view)
-- viewPopUp (pop up container)
--- labelHeader
--- tableView
--- buttonOK
Ограничения:
viewPopUp.centerY = viewContainer.centerY
viewPopUp.centerX = viewContainer.centerX
viewPopUp.leadingSpaceTo superView = 32 @750
viewPopUp.trailingSpaceTo superView = 32 @750
viewPopUp.width <= 300
viewPopUp.height <= 0.8 * viewContainer.height
labelHeader.topSpaceTo superView = 0
labelHeader.leadingSpaceTo superView = 0
labelHeader.trailingSpaceTo superView = 0
labelHeader.bottomSpaceTo tableView = 0
labelHeader.height = 33
tableView.topSpaceTo labelHeader = 0
tableView.leadingSpaceTo superView = 0
tableView.trailingSpaceTo superView = 0
tableView.bottomSpaceTo buttonOk = 0
tableView.height >= 0
tableView.height = 0 @200
buttonOk.topSpaceTo tableView = 0
buttonOK.leadingSpaceTo superView = 0
buttonOK.trailingSpaceTo superView = 0
buttonOk.bottomSpaceTo superview = 0
buttonOK.height = 35
Мой вопрос:
В моей UIViewController-х viewDidLoad
я точно знаю, сколько строк нужно будет р Представлено в этой таблицеView, и я хотел бы добавить дополнительное ограничение, чтобы шкала tableView была равна этому числу, как описано в приведенном выше контексте.
Я пробовал tableView.height = count * rowHeight @500
, но это не обновляет вид. Я не уверен, если я не называю что-то вроде needsUpdateConstraints
или needsUpdateLayout
т.д.
Если я добавляю выше ограничение в соответствии с требованиями, то он будет обновлять Tableview, как ожидалось, но я получаю предупреждения ограничений, и я считаю, что это будет перерыв, если он толкает tableView за размером экрана, поэтому я хотел добавить его как необязательное ограничение, чтобы оно упало после достижения высоты экрана.
Есть ли у кого-нибудь идеи о том, как я могу достичь этого желаемого результата?
Спасибо!