「ユーザー(クリック可能)がセントラルパーク周辺を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を使用することをお勧めします。私たちはWebのリンクをクリックすることに慣れていますが、ネイティブアプリでは、通常、タップ可能な領域をいくらか大きくする方がユーザーフレンドリーです(Appleは少なくとも44pxを推奨しています)。
デリゲート メソッドで 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;
}
URLに「http://」が含まれていることを確認してください
Fancy UILabelsが解決策になる可能性があります。