2017-03-14 16 views
3

私はこのような何かをプログラムする方法を見つけ出す必要があります。ユーザーはダウンボタンをクリックし、アップクリックした後の短いバージョンに戻って折るよう enter image description hereswiftで拡張可能なテキストフィールド/ラベルを作成するには?

テキストが拡大します。私が勉強できる図書館はありますか?私はプログラミングの初心者であり、このタスクにアプローチする方法、勉強するためのガイドなどについてアドバイスが必要です。

+1

あなたはどのようにアプローチする方法のアイデアを得ることができ、この答えを確認してください。 [リンク](http://stackoverflow.com/questions/20958175/ios-animating-uilabel-expand) – sudheer

答えて

5

でそれをアニメーション化することができますすることのnumberOfLinesを持っているあなたの後

.byTruncatingTailをする7と改行モードを言うことができます。

ボタンをクリックするだけで、numberOfLinesが0に、改行モードが.byWordWrappingに変更されます。テキストを非表示にするには、ボタンを押してUILabelを初期値に設定します。

1

UILabelの高さの制約を設定できます。また、タップボタンイベントでは、ラベルの内容に制約定数を変更できます。 UILabelあなたがしなければならないのは、最初に設定されている

UIView.animate(duration) 
3

この問題を解決するにはreadAutoLayoutです。これはどのように行うことができるかの小さな例です。

これはコーディングパートです。このクラスには、UITextViewとボタン操作の高さにはIBOutletが含まれます。

class ViewController: UIViewController { 

    let defaultHeight = 128 
    let expectedHeight = 600 
    var state: Bool = false 

    @IBOutlet weak var height: NSLayoutConstraint! 

    @IBAction func showAction(_ sender: Any) { 
     UIView.animate(withDuration: 0.3, animations: { 
       self.state = !self.state 
       self.height.constant = CGFloat(self.state ? self.expectedHeight: self.defaultHeight) 
       self.view.layoutIfNeeded() 
     }) 
    } 
} 

これはストーリーボードからのものです。

enter image description here

関連する問題