Я предполагаю, что вы хотите добавить несколько кнопок по горизонтали (например, с помощью стандартного элемента управления рейтингом «звездочки»).
A UIStackView
, как можно догадаться из его метода .addArrangedSubview()
, упорядочивает его подпредставлений на основе его .axis
, .alignment
, *Свойства 1011 * и .spacing
, а также их frame
.
Итак, прочитайте немного о UIStackView
и о том, как его можно использовать.Скорее всего, вы в настоящее время ограничиваете свой пользовательский вид:
- верх
- ведущий
- трейлинг (или ширина)
Такдобавление вашей кнопки в качестве arrangedSubView
приводит к ее растяжению до ширины представления стека, поскольку это значение по умолчанию.
Добавление ее в качестве subview
просто накладывает кнопку на представление стека, а не позволяетпредставление стека, чтобы упорядочить его, и ваше представление стека, вероятно, тогда будет иметь высоту ноль - так что кнопку нельзя нажать.
Попробуйте установить только верхние и ведущие ограничения при добавлениипользовательский вид стека.Это должно дать вам кнопку 44 x 44
, которую можно нажимать.
Когда вы добавляете больше кнопок, используя .addArrangedSubview()
, эти кнопки будут располагаться горизонтально, что, вероятно, вам и нужно.