課題
こちらを参考にし、UITextViewの高さを入力内容に合わせて変えることはできたのですが、ボタン押下後に入力していたtextを空にした場合、入力していた文字の高さが残ってしまいます。
ボタン押下後はデフォルトのtextViewの高さに戻すにはどうしたら良いでしょうか?
Swift
1 2import UIKit 3 4class ViewController:UIViewController { 5 6 @IBOutlet weak var testView: UITextView! 7 @IBOutlet weak var textViewHeight: NSLayoutConstraint! 8 @IBOutlet weak var viewHeight: NSLayoutConstraint! 9 10 var currentTextViewHeight: CGFloat = 80 11 override func viewDidLoad() { 12 super.viewDidLoad() 13 // Do any additional setup after loading the view. 14 self.testView.delegate = self 15 } 16 @IBAction func tapButton(_ sender: Any) { 17 testView.text = "" 18 textViewHeight.constant = 80 19 } 20} 21 22extension ViewController: UITextViewDelegate { 23 func textViewDidChange(_ textView: UITextView) { 24 let contentHeight = self.testView.contentSize.height 25 26 if 80.0 <= contentHeight && contentHeight <= 100.0 { 27 28 self.testView.translatesAutoresizingMaskIntoConstraints = true 29 self.testView.sizeToFit() 30 self.testView.isScrollEnabled = false 31 let resizedHeight = self.testView.frame.size.height 32 self.textViewHeight.constant = resizedHeight 33 self.testView.frame = CGRect(x: 60, y: 30, width: self.view.frame.width - 120, height: resizedHeight) 34 35 if resizedHeight > currentTextViewHeight { 36 let addingHeight = resizedHeight - currentTextViewHeight 37 self.viewHeight.constant += addingHeight 38 currentTextViewHeight = resizedHeight 39 } else if resizedHeight < currentTextViewHeight { 40 let subtractingHeight = currentTextViewHeight - resizedHeight 41 self.viewHeight.constant -= subtractingHeight 42 currentTextViewHeight = resizedHeight 43 } 44 45 } else { 46 47 self.testView.isScrollEnabled = true 48 self.textViewHeight.constant = currentTextViewHeight 49 self.testView.frame = CGRect(x: 60, y: 30, width: self.view.frame.width - 120, height: currentTextViewHeight) 50 51 } 52 53 } 54} 55
ボタンタップのアクション内に textViewHeight.constant = 80
を書いたのですが高さが残ったままになってしまうのでデフォルトの高さに戻したいです。。。
デフォルトの高さ | 入力文字数で高さ可変 | ボタン押下後 |
---|---|---|
viewの設定 | textViewの設定 |
---|---|
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/19 12:07
退会済みユーザー
2022/06/19 12:46
2022/06/20 00:46
2022/06/20 02:11 編集
2022/06/20 03:06
2022/06/20 06:59 編集
退会済みユーザー
2022/06/20 07:17
2022/06/20 07:26 編集
退会済みユーザー
2022/06/20 07:31
2022/06/20 07:46 編集
2022/06/20 10:34 編集
退会済みユーザー
2022/06/20 10:52
2022/06/20 11:05 編集
2022/06/20 11:26