0

plist からテキストを取得し、UIView に描画します。テキストには強調表示したい用語が含まれており、ユーザー操作が有効になっているため、辞書ビューに用語の説明が表示されます。

文字列上でそれらの位置を見つける方法を知っており、それはうまく機能します。しかし、それらを別の色で表示する方法が見つかりませんでした。そして、私にとってさらに重要なのは、タップ認識機能をそれらに追加する方法です。

助けていただければ幸いです。

ありがとうシャニ

4

2 に答える 2

0

UIView で単語が表示される場所の前に、同じフォントとテキストの透明なボタンを追加します。必要に応じて、UILabel でこれを行うクラスがありますか? Facebook アプリケーションと同じ効果が得られます。

于 2010-12-14T14:24:57.687 に答える
0

わかりました、私にぴったりの解決策を見つけました。

テキストのビューとして 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;
}

それが誰かを助けることを願っています。シャニ

于 2010-12-24T12:24:58.917 に答える