В файле XIB
у меня есть CustomView
, относящийся к классу с тем же именем.
Просмотр содержимого довольно прост.
Существует вертикальный вид стека , а внутри вид стека есть две метки . Стек выровнен по вертикали с представлением, которое его содержит:
Первая метка (заголовок) содержит статический текст (всегда несколько символов).Вторая метка (подзаголовок) может иметь текст переменной длины.
Я добавляю это CustomView
с другими похожими представлениями в качестве подпредставления Content View
, поскольку это была «строка».
for i in 0...aViews.count {
var v = CustomView(frame: CGRect(x: 0, y: _y, width: 320, height: 100))
v.labelText = "my long label text ..."
contentView.addSubview(v)
// ...
}
Как вы можете себе представить, метка заголовка должна иметь фиксированную позицию (вверху и слева), то есть не может быть строки с названием, начинающимся с 10 баллов, а другим с 14.
Должен признать, я наивно полагал, что положение метки будет автоматическиуправляется тем же фактом, что я выровнял вертикально stackview .Я был не прав и не заметил никаких проблем, пока мне не сказали, что вторая метка, субтитр, может содержать более одной строки.
Я добавил строки к метке прямо в storyboard
и нашелиз этого:
контейнер стека не меняет height
в зависимости от height
его содержимого;
положение «фиксированных» элементов может быть вертикально отцентрировано, но не фиксировано;
ЧтоМне нужно следующее:
- этикетки должны быть «сгруппированы» и выровнены по вертикали: должно быть одинаковое количество места от верхней части первой этикетки до верхней границы контейнера и отот нижней части второй метки до нижней границы;
- , когда вторая метка должна отображать более одной строки, вид контейнера должен соответственно изменить свою высоту;
Возможно ли это?Как мне оформить мой взгляд?