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);
}

完整的源代码

请注意,您应该xcworkspace在 Xcode/AppCode 中打开,因为我在这里使用的是CocoaPods

希望能帮助到你。

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];

制作第一个单词的一种方法clickable是使用字符串方法从标签中取出第一个单词并将其存储在另一个标签中并使用上面的代码使其可点击

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 回答