Я создал текстовое поле и кнопку в раскадровке внутри представления стека. Я хочу, чтобы моя кнопка находилась внутри текстового поля. Для этого внутреннего кода я написал:
textField.rightView = button
textField.rightViewMode = .always
В раскадровке я установил ограничения по высоте и ширине для них обоих. Моя кнопка имеет ширину 30 и высоту 30.
у меня ошибка
Какие ограничения я должен установить, чтобы разместить кнопку внутри Textview.
AFAIK, перетаскивание представления в UITextField как левое/правое представление не разрешено в Interface Builder (Storyboard/Xib). Поэтому его необходимо добавить программно.
Вы не можете редактировать рамку/ограничение textField rightView
напрямую. Чтобы это работало, вам нужно создать подкласс UITextField
и переопределить функцию rightViewRect
. По сути, вам не нужно предоставлять какие-либо ограничения для кнопки. Однако область касания находится только внутри родительского представления (UITextField).
class CustomTextField: UITextField {
override func rightViewRect(forBounds bounds: CGRect) -> CGRect {
.init(x: self.frame.width - 60, y: 0, width: 60, height: 30)
}
}
Спасибо за ваш ответ. Не могли бы вы рассказать подробнее, как я могу удалить его из супервью, поскольку я никогда раньше не использовал раскадровки и всегда использовал программно?