7

iOS でラベルを作成したいのですが、ラベルのテキストの最初の単語を太字にしてクリック可能にする方法を教えてください。ラベルにはユーザー名とそのコメントが表示され、最初の単語は常にユーザー名です。前もって感謝します!

4

4 に答える 4

10

よりエレガントなソリューションは、TTTAttributedStringなどを使用することになると思います。

例:

簡単なデモ

出力:

2013-03-10 07:16:54.429 ClickableUILabel-SO[4770:c07] UserName clicked
Address:    {
    comment = "Your comment.";
    userName = user2126537;
}
2013-03-10 07:16:55.460 ClickableUILabel-SO[4770:c07] UserName clicked
Address:    {
    comment = "Another comment.";
    userName = nsgulliver;
}

キーポイント:

...

NSRange userNameRange = [text rangeOfString: userName];

...

label.delegate = self;
[label addLinkToAddress: @{
           @"userName" : userName,
            @"comment" : comment
    }
                  withRange: userNameRange];

...

- (void) attributedLabel: (TTTAttributedLabel *)label
didSelectLinkWithAddress: (NSDictionary *)addressComponents
{
    NSLog(@"UserName clicked\nAddress:\t%@", addressComponents);
}

完全なソース コード

ここではCocoaPodsxcworkspaceを使用しているため、Xcode/AppCode で開く必要があることに注意してください。

それが役に立てば幸い。

BR。
ユージーン

于 2013-03-10T03:27:31.183 に答える
4

クリック可能にするUITapGestureRecognizer ために使用する必要があります。それにサブビューとしてUILabel使用UIView して追加しますUILabel

UITapGestureRecognizer* gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(yourMethod:)];
[yourLabelView setUserInteractionEnabled:YES];
[yourLabelView addGestureRecognizer:gesture];

最初の単語を作成する 1 つの方法はclickable、string メソッドを使用してラベルから最初の単語を取り出し、それを別のラベルに保存し、上記のコードを使用してクリック可能にすることです。

NSArray* wordArray = [yourLabel.text componentsSeparatedByString: @" "];
NSString* firstWord = [wordArray objectAtIndex: 0];
于 2013-03-08T11:59:25.300 に答える
2
  • ユーザー名の最初の単語を含むカスタム ボタンを作成し、テキストを太字にします。
  • カスタムボタンのすぐ横にあるラベルを取り、最初の単語以外のユーザー名の残りの部分を書きます。
  • カスタムボタンのクリックイベントで、やりたいことを何でもしてください..

これがあなたに明確になることを願っています。

プログラミングを楽しもう!

于 2013-03-08T12:03:43.867 に答える
0

ラベルは難しそうですね。Ypu はビューを使用できます。その上にボタンとラベルを並べて追加し、最初の文字をボタンに追加し、他の文字をラベルに追加します。

于 2013-03-08T11:59:26.807 に答える