Существует проект о github о росте UITextView
здесь https://github.com/KennethTsang/GrowingTextView Я загрузил его в свое приложение swift
и выполнил инструкции на их странице.Как настроить мои ограничения, чтобы мой UITextView отображался только тогда, когда пользователь прокручивает UITableView?
Это мой код:
override func viewDidLoad() {
let textView = GrowingTextView()
textView.delegate = self
textView.layer.cornerRadius = 4.0
textView.maxLength = 200
textView.maxHeight = 70
textView.trimWhiteSpaceWhenEndEditing = true
textView.placeHolder = "Say something"
textView.placeHolderColor = UIColor(white: 0.8, alpha: 1.0)
textView.placeHolderLeftMargin = 5.0
textView.font = UIFont.systemFontOfSize(15)
inputToolbar.translatesAutoresizingMaskIntoConstraints = false
textView.translatesAutoresizingMaskIntoConstraints = false
textView.returnKeyType = UIReturnKeyType.Send
inputToolbar.addSubview(textView)
let views = ["textView": textView]
let hConstraints = NSLayoutConstraint.constraintsWithVisualFormat("H:|-8-[textView]-8-|", options: [], metrics: nil, views: views)
let vConstraints = NSLayoutConstraint.constraintsWithVisualFormat("V:|-8-[textView]-8-|", options: [], metrics: nil, views: views)
inputToolbar.addConstraints(hConstraints)
inputToolbar.addConstraints(vConstraints)
Этот UITextView
находится под UITableView
:
UIBottomBar
имеет 4 ограничения: leading
, trailing
, bottom
и top
, где top
это равно до UITableView
низ.
UITableView
также имеет ограничения: 4 leading
, trailing
, top
и bottom
bottom
, где это равняется UIBottomBar
вершине.
Я также подключен IBOutlet к bottom
скованности UIBottomBar
и я его изменения в коде:
@IBOutlet weak var bottomConstraint: NSLayoutConstraint!
func keyboardWillChangeFrame(notification: NSNotification) {
let endFrame = (notification.userInfo![UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue()
bottomConstraint.constant = CGRectGetHeight(view.bounds) - endFrame.origin.y
self.view.layoutIfNeeded()
}
Все работает довольно хорошо. Мне нужно ввести здесь изменение - textView
скрыт, когда прокручивается UITableView
. Но когда пользователь начинает прокручивать его - появляется textView
и работает как следует - растет с каждой новой строкой текста.
Я думал об использовании метода scrollViewDidScroll
на моем UITableView
, но я не знаю, как настроить определенные ограничения там.
Это то, что я до сих пор есть:
func scrollViewDidScroll(scrollView: UIScrollView) {
if (scrollView.contentOffset.y < 100) {
}else {
}
}
теперь мне нужно, чтобы включить ограничение изменения в этом if-else
заявлении. Можете ли вы мне помочь?
бит сложного, проясните здесь, что вы хотите скрыть текстовое окно, когда прокрутка таблицы просматривается? –
@SatishMavani, когда пользователь открывает панель, и таблица видна сверху, тогда текст 'textview' должен быть скрыт. Он должен появиться, когда пользователь начнет прокрутку вниз – user3766930
. Я попытался с пометкой 'textView.hidden = true' в' '' '' '' '' '', но тогда, даже если 'textView' скрыт,' uitableView' не растянут на дно экран. – user3766930