2016-11-29 32 views
1

テキストビューに3行だけのテキストを表示する可能性があるのか​​、さらに詳細なボタンをクリックすると3行以上のテキストが含まれているテキスト全体に展開されるのだろうと思っていました。スウィフト内でどのようにこれは可能ですか、ポッドやプラグインはありませんか?拡張する方法 - SwiftでUITextViewを折りたたむ?

ありがとうございました。

+0

これはあなたを助けることができる - http://stackoverflow.com/questions/38244707/simplest-way-to-implement-a-read-more-button-to-expand-a-uitextview-in-ios -swi – Santosh

+0

私は外部ライブラリを使用したくない... – Caspert

+0

@Caspertあなたはライブラリを見ることができ、どのコードを使用したいのか分かります... –

答えて

2

他のサードパーティのライブラリを使用せずにこれを行うには、最も簡単な方法は、UITextViewのフレームを調整することです。私のサンプルコードでは、私はストーリーボードにTextViewとButtonを持っています。ボタンを押すとonReadMoreが呼び出されます。私はちょうど折りたたまれているときはサイズとして40を、展開するときには200を使用します。

class ViewController: UIViewController 
{ 
    @IBOutlet weak var textView: UITextView! 

    override func viewDidLoad() 
    { 
    super.viewDidLoad() 

    let frame = textView.frame 
    let newRect = CGRectMake(frame.origin.x, frame.origin.y, 200, 40) 
    textView.frame = newRect 
    } 

    @IBAction func onReadMore(sender: AnyObject) 
    { 
    let frame = textView.frame 

    if frame.height < 180 
    { 
     textView.frame = CGRectMake(frame.origin.x, frame.origin.y, 200, 180) 
    } 
    else 
    { 
     textView.frame = CGRectMake(frame.origin.x, frame.origin.y, 200, 40) 
    } 
    } 
} 
+0

拡張された高さが不明/動的な場合はどうなりますか? – Sneha

+0

フレームの高さをベースとして使用して固定数を追加することができます。 –

関連する問題