2017-05-29 17 views
0

セグメント化されたコントローラをオブジェクトライブラリからドラッグ&ドロップするのは簡単ですが、必ずしもそうであるとは限りません。カスタムの下線タイプのセグメント化されたコントローラを実装する必要がありますが、それはとても難しいと感じました。私がオンラインで見つけたコードはちょうど私の頭の上にあります。誰かが下線タイプのカスタムセグメントコントローラを簡単に実装することを提案できますか?カスタムのセグメント化コントローラを作成する別の方法

+0

ことのように...? –

答えて

0

Laymanと最も簡単なアプローチは、2つのラベルを表示することです。各ラベルの下に1つの進捗バーを配置します。既定で進行状況バーを非表示にします。これらのプログレスバーとラベルの@IBOutletを作成します。制約を慎重に割り当てます。今度は、セグメント化されたコントローラをオブジェクトライブラリからドラッグし、それらの上に置きます。色合いを透明/透明にします。このセグメント化されたコントローラ用のアウトレットを作成します。

ここで、セグメント化されたコントローラーを選択すると、そのセグメントの下にあるラベルを太字にすることができます。同時に、選択したセグメントの隠しプログレスバーを再表示することができます。選択されていないラベルを元のフォントに置き換えます。

セグメントの提供と検索の例をご存じでしょうか。

はあなたがどんな問題に直面したら、コメント、私はそれのためのコードを書いてみましょう:

@IBAction func selection(_ sender: Any) {//outlet to UISegmentedControler 
     let sel = segmt.selectedSegmentIndex 
     if sel == 0 { 

      Providing.font = selectedFont //selected font is bold font 
      Seeking.font = fonts //original font for seeking 
      p.isHidden = false 
      s.isHidden = true 


     } 
     else if sel == 1 { 

      Seeking.font = selectedFont 
      Providing.font = fontp //original font for providing 
      s.isHidden = false 
      p.isHidden = true 



     } 
     else{ 
      //code.. 
     } 

    } 
0

は基本的に、あなたは何をすべきか、あなたがUIViewのを再利用できるように

  • あなたはUIViewのサブクラスを作成

    は、手動で、XIBことによってそれを設計することができ、あります。
  • それは二つのボタン
  • サブクラスのUIViewを持つことで、セグメント化されたコントロールのように見える作成し、他の1が選択されている場合、一つの選択が解除れます付加アニメーション、(変更色)を持つ2つのボタンをフックするコードを書いて、万力-versa。

あなたが見るすべてのカスタムセグメント化されたコントロールが追加されたアニメーションやカスタムdrawRectで、次のように行われます。また、コードはモジュール化されており、OOPなので、誰でも簡単かつ簡単に公開APIを使用することができます。

この説明は、独自のカスタムコントロールを作成するのに役立ちます。 ハッピーコーディング

0

collection viewを使用して、このようなものを作成できます。独自のカスタムsegmented controlを作成することができますUICollectionViewDelegateFlowLayoutにマイナーな変更を行った後https://stackoverflow.com/a/40552321/5716829

を参照してください。

このアプローチに従ったヘルプが必要な場合はお知らせください。

関連する問題