我正在第一個簡單的iPhone應用程序的最後一段。我正在建立一個「關於」的觀點,用credit/info /等。iPhone應用程序的「約」文本中的超鏈接
我在最簡單的事情上失敗:如何將超鏈接嵌入到文本中?我目前正在使用帶有UILabel的UIView文本。
我已經看過這裏,和示例應用程序,但沒有得到任何地方。我應該使用UIWebView嗎?
Thx。
我正在第一個簡單的iPhone應用程序的最後一段。我正在建立一個「關於」的觀點,用credit/info /等。iPhone應用程序的「約」文本中的超鏈接
我在最簡單的事情上失敗:如何將超鏈接嵌入到文本中?我目前正在使用帶有UILabel的UIView文本。
我已經看過這裏,和示例應用程序,但沒有得到任何地方。我應該使用UIWebView嗎?
Thx。
是的,使用一個UIWebView並把靜態HTML。
像這樣:
[myWebView loadHTMLString:@"<html><head></head><body style=\"font-family: sans-serif;\"> .... </body></html>" baseURL:nil];
你可以通過調用的UIApplication的OpenURL觸發Safari瀏覽器:法要顯示的URL。 這將關閉你的應用程序,然後打開safari(或郵件/ youtube /等)。
你會想讓你的鏈接以某種方式,也許在一個按鈕。這部分取決於你。
如果您想要將html內容嵌入到您的視圖中,那麼請儘量使用UIWebView。
鏈接需要iPhone開發人員中心登錄。
感謝弗蘭克和瑞安。
除了Frank的指導,我還需要實現UIWebViewDelegate,並在Interface Builder中鏈接到它。原因是每個被點擊的鏈接都會在我的應用程序中打開(沒有可能的導航...)。我只需要實現此方法與適當應用打開所有網址:
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
[[UIApplication sharedApplication] openURL:request.URL];
return false;
}
return true;
}
在指定的URL啓動網頁瀏覽器:
NSURL *target = [[NSURL alloc] initWithString:@"http://www.stackoverflow.com"];
[[UIApplication sharedApplication] openURL:target];
該代碼可以在任何地方運行。我對UILabel進行了分類,添加了touchedsEnded方法並將其放置在那裏。 (不要忘記設置labelname.userInteractionEnabled = YES;)
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
NSURL *target = [[NSURL alloc] initWithString:@"http://www.stackoverflow.com"];
[[UIApplication sharedApplication] openURL:target];
}
UIWebView的可能是錯誤的方式來做到這一點。這是非常這樣的東西太多矯枉過正。你應該看看一個名爲的Github項目。
它會自動檢測.text
屬性中的任何URL。
您可以使用它像這樣:
LRLinkableLabel *label = [[LRLinkableLabel alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 20.0)];
label.delegate = self;
label.text = @"Check out http://dundermifflin.com to find some great paper deals!";
然後,只需確保self
實現此方法:
- (void) linkableLabel:(LRLinkableLabel *)label clickedButton:(UIButton *)button forURL:(NSURL *)url {
[[UIApplication sharedApplication] openURL:url];
}
您還可以使用linkColor
和textColor
屬性來配置標籤的外觀。從這一點上,您可以像使用其他UILabel一樣使用它。
當您全部完成以確保一切都清理完畢後,請記得將delegate
設置爲nil
。
希望這會有所幫助。