UITextView
подклассы от UIScrollView
, вы можете использовать это в ваших интересах, чтобы добавить подвидов к нему, как вы бы любой нормальный UIScrollView
, хитрость заключается в том, чтобы компенсировать текстовый контейнер текстового вида по по высоте кнопки + обивка. Например:
let textView = UITextView(frame: CGRect(x: 0, y: 0, width: 320, height: 500))
textView.text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vitae fermentum tellus. Donec dui sem, viverra eu auctor eleifend, aliquet id lorem. Nam id sapien sed arcu auctor commodo nec nec nulla. Praesent id mi nec odio consequat varius id sit amet quam."
let buttonHeight: CGFloat = 44
let contentInset: CGFloat = 8
//inset the textView
textView.textContainerInset = UIEdgeInsets(top: contentInset, left: contentInset, bottom: (buttonHeight+contentInset*2), right: contentInset)
let button = UIButton(frame: CGRect(x: contentInset, y: textView.contentSize.height - buttonHeight - contentInset, width: textView.contentSize.width-contentInset*2, height: buttonHeight))
//setup your button here
button.setTitle("BUTTON", forState: UIControlState.Normal)
button.setTitleColor(UIColor.redColor(), forState: UIControlState.Normal)
button.backgroundColor = UIColor.lightGrayColor()
//Add the button to the text view
textView.addSubview(button)
Это даст вам следующий вывод:
Надеется, что это помогает!
Почему текстовый вид, а не ярлык? – Wain
@luiyezheng На самом деле кнопка центрирована по горизонтали и по вертикали. Он выглядит нормально на большинстве устройств, кроме 4-х и 3,5-дюймовых устройств. –
@Wain Поскольку существует около шести предложений. –