2015-09-09 16 views
8

私はswift 1.2とXcode 6.4を使用して基本的なスケッチ作成アプリケーションを作成しています。私が取り組んでいる機能は、将来の操作のために画像にテキストを追加することです。Swift - 他の表示項目の上にラベルを設定します

これまでのところ、ユーザーが入力したテキストがラベルを介して図面に追加されましたが、描画されるUIImageの背後に配置されています。これにより、関連付けられたタップジェスチャが認識されなくなります。引っ張られると、ラベルも不明瞭になります。

他のすべての上にラベルを貼り付けるにはどうすればいいですか?最終目標は、ユーザーがラベルを移動できるようにすることです。

通常のウェブスタックを使用していた場合は、CSSを使用して要素のz-indexを高い値に設定します。

編集:view.bringSubviewToFront(label)を使用すると、テキストが上書きされるのを防ぎますが、タップジェスチャーを選択することはできません。

HERESに私のコードは:

func printText(){ 
     println(textString) 

     var label = UILabel(frame: CGRectMake(5, 100, 200, 50)) 
     label.textAlignment = NSTextAlignment.Center 
     label.text = textString; 

     let tap = UITapGestureRecognizer(target: self, action: Selector("handleTap")) 
     label.addGestureRecognizer(tap) 

     self.view.addSubview(label); 
    } 

    func handleTap() { 
     print("tap working") 
    } 

すべてのヘルプははるかに高く評価します。

答えて

32

あなたがzインデックスを使用したい場合:

label.layer.zPosition = 1; 

また、あなたが親ビューにBringToFront関数方式で遊ぶことができます:

self.view.bringSubviewToFront(label); 

あなたはここでその機能を確認することができます。 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/

また、次を追加する必要があります。

タッチを可能にするために

親ビューのものを使用して

+0

により背面に画像表示を送信することができます

self.view.bringSubviewToFront(label) 

または

によってフロントにラベルを呼び出すことができますが、タップジェスチャーはまだピックアップされていません。 – tonyedwardspz

+0

label.userInteractionEnabled = trueが見つかりません。 – Miknash

+1

素晴らしいです。どうもありがとう。 – tonyedwardspz

4

試してください:それはすべてあなたが、やりたいことができますまたは何に依存

view.bringSubviewToFront(label) 
view.sendSubviewToBack(imageView) 

+0

これは、ラベルが上書きされるのを防ぎますが(素晴らしいですが)、タップジェスチャーを取り上げることはできません。 – tonyedwardspz

+0

Btw。これはまったく同じ答えです。 – Miknash

+0

答えの間にわずか5分の間隙があり、私は窓をリフレッシュしなかったのであなたの答えを見ませんでした。また、あなたはsendSubviewToBackについて言及していませんでした。これはまた役に立つかもしれません。 – Rafal

2

あなたはこれらのいずれもが、上に描画されているラベルを止めるあなたは

self.view.sendSubviewToBack(imageView) 
+0

これは、ラベルが上書きされるのを防ぎますが、タップジェスチャーを受け取らないようにします。 – tonyedwardspz

+0

Rafalと私が提供したのと全く同じ回答です。 – Miknash

+0

申し訳ありませんが、私は質問をチェックしました。 –

関連する問題