2016-08-03 25 views
0

私はこのようなボタンをインターフェースビルダーで作成しようとしています。iOSのカスタムUIButtonをテキストの中央に配置した画像

enter image description here

私は、しかし私は、テキストの上に座って画像を得ることができない、リファレンスとしてthis SO questionを使用していました。

私は、中心にないテキストと画像しか得られません。ここで

enter image description here

設定の一部されています

enter image description here

enter image description here

+0

「エッジ」を選択した場合、画像を選択してエッジ値を変更するオプションがあります。「左、右、上、下」インセット –

答えて

1

あなたは、同じビュー(UIButtonビュー)上の画像とラベルの両方を使用しようとしているとこれらのタスクを実行する最善の方法ではありません。

また、インターフェイスビルダーのUIButtonにサブクラスを追加することはできません。

私の代わりにUIViewのを作成することをお勧めいたしますと、「設定」で別々の設定イメージとUIImageView、およびUILabelを追加します。その後

enter image description here

あなたが知らせるTapGesturRecognizerを追加することができますあなたは、タップは、あなたのビューボタンになったとき:

func tapSetup() { 
     let tapOnMyViewButton = UITapGestureRecognizer(target: self, action: #selector(ViewController.didTapOnMyViewButton)) 
     self.byViewBtn.addGestureRecognizer(tapOnMyViewButton) 
    } 

    func didTapOnMyViewButton() { 
     //Your logic 
    } 
0

これは、Interface BuilderでのUIViewを作成し、Uicontrolのにそのクラスを変更することがあるように私は頻繁に状況で使う代替。 &は、AutoLayoutとより多くの「ハッピー」な内容のインセットを配置したいと思うので、UIImageViews、UILabelsなどをいくつでも追加することができます。

UIButtonはUIControlのサブクラスであり、おそらくあなたが探しているすべての機能がUIControlの一部である可能性があります。具体的には、-addTarget:action:forControlEventsメソッドです。

関連する問題