- 有link點擊
- 若是電話號碼可以打電話
- 若是連結可以開網址
- 若是地圖可以開Apple Map
mattt / TTTAttributedLabel有蠻完整的範例,不過這邊還是紀錄一下。
Step 1:
COPY兩個檔案:TTTAttributedLabel.h及TTTAttributedLabel.m
Step 2:
加入CoreText.framework
Step 3(若專案本身是ARC不需要這步驟):
至Build Paases -> Compile Sources中找到TTTAttributedLabel.m加入-fobjc-arc
再來就可以使用了。以我自己的為例:
先將要使用這元件的ViewController或Class加上TTTAttributedLabelDelegate
電話號碼:
TTTAttributedLabel *tel = [[TTTAttributedLabel alloc] initWithFrame:CGRectMake(10, 10, 190, 21)];
tel.delegate = self;
if (tel.text != nil && ![tel.text isEqualToString:@""]) {
//電話號碼的範圍是整個字串
[tel addLinkToPhoneNumber:tel.text withRange: [tel.text rangeOfString:tel.text] ];
}
開網址:
TTTAttributedLabel *webSite = [[TTTAttributedLabel alloc] initWithFrame:CGRectMake(10, 10, 190, 21)];
webSite.delegate = self;
if (webSite.text != nil && ![webSite.text isEqualToString:@""]) {
//網址的範圍是整個字串
NSURL *urlString = [[NSURL alloc] initWithString:[@"http://" stringByAppendingString: webSite.text]];
[webSite addLinkToURL:urlString withRange:[webSite.text rangeOfString: webSite.text] ];
}
開Apple Map:
TTTAttributedLabel *addrLabel = [[TTTAttributedLabel alloc] initWithFrame:CGRectMake(10, 10, 190, 21)];
addrLabel.delegate = self;
if (addrLabel.text != nil && ![addrLabel.text isEqualToString:@""]) {
//地址的範圍是整個字串
NSDictionary *addr = @{@"addr": addrLabel.text};
[addrLabel addLinkToAddress:addr withRange: [addrLabel.text rangeOfString: addrLabel.text] ];
}
還蠻簡單易用。
沒有留言:
張貼留言