plist からテキストを取得し、UIView に描画します。テキストには強調表示したい用語が含まれており、ユーザー操作が有効になっているため、辞書ビューに用語の説明が表示されます。
文字列上でそれらの位置を見つける方法を知っており、それはうまく機能します。しかし、それらを別の色で表示する方法が見つかりませんでした。そして、私にとってさらに重要なのは、タップ認識機能をそれらに追加する方法です。
助けていただければ幸いです。
ありがとうシャニ
plist からテキストを取得し、UIView に描画します。テキストには強調表示したい用語が含まれており、ユーザー操作が有効になっているため、辞書ビューに用語の説明が表示されます。
文字列上でそれらの位置を見つける方法を知っており、それはうまく機能します。しかし、それらを別の色で表示する方法が見つかりませんでした。そして、私にとってさらに重要なのは、タップ認識機能をそれらに追加する方法です。
助けていただければ幸いです。
ありがとうシャニ
UIView で単語が表示される場所の前に、同じフォントとテキストの透明なボタンを追加します。必要に応じて、UILabel でこれを行うクラスがありますか? Facebook アプリケーションと同じ効果が得られます。
わかりました、私にぴったりの解決策を見つけました。
テキストのビューとして UIWebView を使用してから、HTML として書式設定されたテキストを追加します。このようにして、CSS を使用してテキストをより適切にフォーマットし、テキストの一部をリンクとしてタグ付けすることもできます。この例では、子音という単語がリンクとして表示されるようにします。(もう 1 つの大きな利点は、RTL 言語のサポートを追加できることです)。
UIWebView *webView =[[UIWebView alloc] initWithFrame:imgViewRect];
webView.backgroundColor = [UIColor clearColor];
webView.opaque=NO;
webView.delegate=self;
NSString *localizedPath = [NSString stringWithFormat:@"rt%@",pcard.card_number];
NSString *localizedString = NSLocalizedString(localizedPath,@"");
NSString *cssPath = [[NSBundle mainBundle] pathForResource:@"style" ofType:@"css"];
//do base url for css
NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
NSString *html =[NSString stringWithFormat:@"<a href=\"consonant\"><dfn>consonant</dfn></a>",
currentLanguage,dir,cssPath,langClass,localizedString];
NSLog(@"%@",html);
[webView loadHTMLString:html baseURL:baseURL];
[self addSubview:webView];
次に、この関数を使用して、どの単語がクリックされたかを認識し、辞書テキストで UIView を起動します。
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request
navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
NSURL *URL = [request URL];
NSLog(@"%@",[URL lastPathComponent]); //thats gives me the name of the clicked word.
//here you can set any function that you like.
//using the data from the url path.
}
return YES;
}
それが誰かを助けることを願っています。シャニ