2012-01-23 3 views
0

初めてiosでカスタムナビをやっています。私は6つのボタンが並んで配置されています。私がボタンをタップすると、画像が変わります。ただし、このボタンはに切り替えることはできませんです。ボタンを選択解除できる唯一の方法は、別のボタンに触れることです。任意の時点でアクティブにできるボタンは1つだけです。iosのナビゲーションボタン

私の考え:

  • 使用UIButtons
  • 変更UIButtonの画像タッチ
  • 非アクティブボタンをタッチすると、ナビゲーションクラス
  • 内部アクティブボタンを追跡します現在アクティブなボタンを非アクティブにして、タッチボタンをアクティブにする

最終的な製品をカスタムTabBarControllerのように動作させたいが、レイアウトは入れ替えない。私は現在の内容を編集したいだけですViewController

これを行うより良い方法はありますか?

+1

ニックが言っていること、またはあなたが何を述べているか。 UISegmentedControlを使用してあなたを悩ませる人もいるかもしれませんが(私の知る限りでは "ラジオボタン"スキームしか利用できません)、 "あなた自身のもの"には明確な柔軟性の利点があります。 (ただし、おそらく 'selected'状態を使って" active "を表現し、画像の変更を扱うことができることに注意してください) –

+1

選択したボタンをトグル可能にしたくないということを除いて、とにかくそれを無効にする必要があります。その場合、彼は無効状態をダウン状態にすることもできます。 –

答えて

0

IセットアップそうのようなInterface BuilderのUIButtons:選択した背景画像のタッチで

と無効未選択の背景画像

    • デフォルト、ボタンがself.enabled = NOですUIButtonsの外観が変わります。しかし、ボタンが暗くなるので、self. adjustsImageWhenDisabled = NOも実装しました。

      この方法でボタンは、「アクティブ」になったらを再選択できません。

  • 1

    UISegmentedControlを使用するだけで、その機能を既に使用できます。大幅にルック&フィールをカスタマイズする必要がある場合は、UIButtonソリューションがうまく聞こえます。

    +0

    'UISegmentedControl'は確かに*正しい*機能です。しかし、あるケースでは、アイテムの列(垂直)を扱っています。私があなたが言及したクラスの拡張を試してみるべきか、あるいは単に習慣に行くべきか疑問に思っています。思考? – Jacksonkr

    +0

    view.transform = CGAffineTransformMakeRotation(M_PI_2)と言ってtransformプロパティを使用して90度回転させることもできますが、テキストもすべて垂直になります。アイコンを使用していない限り、個々のボタンはおそらく最良の賭けです。 –

    +0

    合意。あなたの助けに感謝ニック! – Jacksonkr

    関連する問題