3

iPhone アプリケーションで、ラベル内のリンクを別の色 (ハイパーリンクなど) で表示したいと考えています。

誰かがリンクをクリックすると、Safari ブラウザーでリンクが開かれます。

どうすればそうできますか?

4

3 に答える 3

2

2つのサンプルコードリンクの例を聞いてください。

https://github.com/twotoasters/TTTAttributedLabel

http://furbo.org/stuff/FancyLabel_1.0.zip

または、このようにすることもできます

ラベルのuserInteractionEnabledをYESに設定し、ジェスチャーレコグナイザーを追加します。

myLabel.userInteractionEnabled = YES;

    UITapGestureRecognizer *gestureRec = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(openUrl:)];
    gestureRec.numberOfTouchesRequired = 1;
    gestureRec.numberOfTapsRequired = 1;
    [myLabel addGestureRecognizer:gestureRec];
    [gestureRec release];

Then implement the action method:

    - (void)openUrl:(id)sender
    {
        UIGestureRecognizer *rec = (UIGestureRecognizer *)sender;

        id hitLabel = [self.view hitTest:[rec locationInView:self.view] withEvent:UIEventTypeTouches];

        if ([hitLabel isKindOfClass:[UILabel class]]) {
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:((UILabel *)hitLabel).text]];
        }
    }
于 2012-12-20T05:50:53.713 に答える
1

リンクを確認するために正規表現を使用します

NSString *urlRegEx =@"((http|https)://)?((\\w)*|([0-9]*)|([-|_])*)+([\\.|/]((\\w)*|([0-9]*)|([-|_])*))+";
NSPredicate *urlTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", urlRegEx];
if ([urlTest evaluateWithObject:lbl.text])
{
       //set color of lbl
}
于 2012-12-20T05:50:50.477 に答える
0

ハイパーリンクを知るためにラベルで識別できるものは何もありません。

ラベルのように見えるカスタム ボタンを作成して (テキストと背景を clearColor としてのみ)、効果を与えます。

于 2012-12-20T05:44:28.483 に答える