我正在尝试创建一个新闻提要,例如:“用户(可点击)在中央公园(可点击)周围跑了 3 分钟”。可点击的链接应该只调用一个函数,我可以在其中推送一个新的 ViewController。
UILabel 不支持可点击链接,我想知道如何实现它。FancyLabel 看起来很旧(2008 年),TTTLabel 似乎只处理外部链接、电话和地址。
您也可以只使用带有链接的 UIWebView 并处理按下链接
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
因此,您可以向 UILabel 添加轻击手势识别器:
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myMethodName)];
myLabel.userInteractionEnabled = YES;
[myLabel addGestureRecognizer:tap];
但根据您的要求,我可能会建议您改用 UIButton。我们习惯于点击网络中的链接,但在原生应用程序中,将可点击区域设置得稍大(Apple 建议至少 44 像素)通常对用户更友好。
使用带有委托方法的 uiwebview。
在情节提要中链接 uiwebview 和 uiviewcontroller(委托)。
- (BOOL)webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType {
if ( inType == UIWebViewNavigationTypeLinkClicked ) {
[[UIApplication sharedApplication] openURL:[inRequest URL]];
return NO;
}
return YES;
}
让 sur,你的网址有“http://”
花哨的 UILabel可能是您的解决方案。