2016-08-03 4 views
-2

場合によっては、UILabelをクリック可能にする必要があります。 私はUIlabelClickableを作るためにstackOverflowから多くの回答を試みましたが、うまくいきませんでした。Swift:UIBabel on UILabel

結局のところ、UIButtonをUILabelに配置し、ボタンを透明にすることに決めました。

ただし、ボタンはラベルの上に正しく配置されますが、ボタンをクリックしても相互作用はありません。何か案が?

おかげ

編集:また、二つのビューがあり、VIEW1とVIEW2を言います。私のアプリの構造のために、私はビュー2にUIButtonとUILabelを配置し、view1にビュー2を配置しました。 ので:

view2.addSubview(button) 
view1.addSubview(view2) 
+0

UILabelを完全に削除してUIButtonだけを使用してみませんか? UIButtonは基本的にクリック可能なUILabelです。 –

+0

理由は、UILabelに対して複数の関数が実行されているため、UIButtonに変更できないためです。 – hikki

+0

UIButtonでこれらの関数を代わりに実行するのはなぜですか? –

答えて

0

ゼロの不透明度を持つビューはタップ可能ではありません。ボタンに非常に小さな不透明度を与えますが、ゼロにはなりません。これは表示されませんが、タップ可能になります。

また、アルファベットがゼロに近く、ゼロではないタイトルと背景色のない通常のボタンを使用します。繰り返しますが、これは表示されませんが、タップ可能です。

0

UILabelをクリック可能にする必要がある場合は、ラベルを削除してUIButtonを使用し、ボタンの名前をラベルに記載されているものに変更する必要があります。これはラベルのように表示されますが、クリック可能になります。

希望すると便利です。

1

UILabelはそのUIViewスーパークラスからプロパティを継承するため、UILabelのuserInteractionEnabledをtrueに設定する必要があります。

UILabelがUIControlから最初にやったように継承しないので、言葉を忘れてしまいました。ラベルにタップジェスチャ認識機能を使用する必要があります。

あなたのUILabelにタップジェスチャー認識機能を追加するだけでいいです。

+0

明らかに、私のボタンはスーパービューから外れていたので、それが機能していなかったのです。愚かな質問をしていただきありがとうございました。ありがとうございました。 – hikki

0

実際には、UIButtonは、titleLabelです。クリック可能にしたい場合は、UIButtonを使用しても問題ありません。UILabel

0

まず、私はあなたの質問に答えます。 2つの可能性があります

1)UILabelはUIButtonの上にある可能性がありますので、UILabelでUIButtonを実行する必要があります。

2)アルファを0.0fにする色をクリアするためにUIButtonカラーを作成した可能性があります。このmakeボタンはクリックできません。そのため、色の設定を変更する必要があります。アルファを1.0にする

ベストウェイは、UIButtonのみを使用し、UIButtonとUILabelは使用しないようにしてください。またはuserInteractionEnabledプロパティを持つUILabelのみ。