質問

属性のある文字列を使用したいです NSLinkAttributeName 内部でクリック可能なリンクを作成します UILabel iOS 7プロジェクト内のインスタンス。これは、外部ライブラリを使用せずに最終的に可能になりました。

NSURL *url = [NSURL URLWithString:@"http://www.google.com"];

NSDictionary *attr = [NSDictionary dictionaryWithObjectsAndKeys:
                          url, NSLinkAttributeName, nil];

文字列に属性を適用すると、テキストが青と下線付けのように表示されますが、クリック/タップでは何も起こりません。ラベルのユーザーインタラクションが有効になっています。誰かがこれを行う方法を知っていますか?ありがとう!

役に立ちましたか?

解決

私は今自分の質問に答えることができます:私は使用しています UITextView それ以外の UILabel 今。フォーマットしました UITextView 私のラベルのように見て行動するために、追加しました:

UITextView *textView = [[UITextView alloc] init];
textView.scrollEnabled = NO;
textView.editable = NO;
textView.textContainer.lineFragmentPadding = 0;
textView.textContainerInset = UIEdgeInsetsMake(0, 0, 0, 0);
textView.delegate = self;

デリゲートを設定することを忘れないでください、あなたは実装する必要があります UITextViewDelegate!次に、デリゲートメソッドを実装します。

- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)url inRange:(NSRange)characterRange
{
     return YES;
}

これにより、供給されたものが自動的に開きます NSURL-Click/Tapの質問にある属性文字列からのインスタンス。

覚えておいてください:これはiOS 7でのみ機能します。レガシーサポートには外部ライブラリが必要です

アップデート:

作る UITextViewsは最終的にラベルが完全に混乱していたように振る舞い、私はいくつかの恐ろしいiOS-behavioursにつまずきました。最終的に使用しました tttattributedlabel 単に素晴らしいライブラリで、ではなくラベルを使用できるようにしました UITextViews。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top