I want to create label in iOS, can anyone help me to make the first word of the label\'s text bold and clickable. The label displays username and its comment and the first w
I suppose more elegant solution will be using TTTAttributedString or similar.
Example:
Output:
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;
}
Key point:
...
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);
}
Complete source code
Note that you should open xcworkspace
in Xcode/AppCode because I'm using CocoaPods here.
Hope it helps.
BR.
Eugene
You need to use UITapGestureRecognizer
for making UILabel
clickable. Use UIView
and add UILabel
as subviews to that
UITapGestureRecognizer* gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(yourMethod:)];
[yourLabelView setUserInteractionEnabled:YES];
[yourLabelView addGestureRecognizer:gesture];
One way of making first word clickable
is to take out the first word from the label using the string method and store it in another label and use the above code to make it clickable
NSArray* wordArray = [yourLabel.text componentsSeparatedByString: @" "];
NSString* firstWord = [wordArray objectAtIndex: 0];
labels seems to be difficult. Ypu can use a view. add a button and lable on that side by side and add 1st character to button and others to label.
Hope this will be clear to you.
Enjoy Programming!