質問

私はこれが良いルートであるかどうかわかりません、...私はウェブから受け取ったいくつかのデータを持っています。問題は、テキストがhtml(pタグなど)であるということです。最初に考えたのは、セルにUiWebViewを作成し、loadHTMLStringを入力することでした。事実は、それは金田が動作します。しかし、私はその後、セルはもはやタッチの受信者ではありませんでした。

SO、コードに深く入り込む前に、UIWebViewを使用するよりも、セルにデータを取り込むより良い方法があります。それはハックのように感じられ、たとえそれが機能していても、アップルはそれを無効にするのではないかと恐れています。

//カスタムUITableViewCellクラスから:

- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier]) {
    [self setFrame:frame];

    webcell = [[UIWebView alloc] initWithFrame:CGRectMake(0,0,frame.size.width-20,frame.size.height)];
    [self.contentView addSubview:webcell];

    //bloack the webview from touches
    UIView *cover = [[UIView alloc] initWithFrame:webcell.frame];
    [self.contentView addSubview:cover];
    [cover release];
}
return self;

}

-(void)setLabelData:(FeedItem *)feedItem {     link = feedItem.link;

NSMutableString *htmlstring = [NSMutableString string];
[htmlstring appendString:@"<html><head><link rel='stylesheet' href='style.css'/></head><body>"];
[htmlstring appendFormat:@"<p>%@</p>",feedItem.title];
[htmlstring appendFormat:@"<p>%@</p>",feedItem.description];
[htmlstring appendString:@"</body></html>"];
[webcell loadHTMLString:htmlstring baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]bundlePath]]];

}

ありがとう

役に立ちましたか?

解決

誰かが反論しない限り、UITableViewCellのUIWebViewは良いアイデアではないと結論付けました。とはいえ、私はローカルのhtmlStringでテストしていません...

他のヒント

セルでWebビューを使用して、ある程度の成功を収めました。セルがタッチイベントを受信するようにするには、webviewの userInteractionEnabled プロパティをNOに設定する必要があります。また、webviewはコンテンツのロードに時間がかかり、準備が整う前に再利用される可能性があるため、セルごとに異なるreloadIdentifierを使用する必要があります。

これは、テーブルに必要な数がわかったらすぐにwebview-cellsを静的に割り当て、画面外ですべての読み込みを開始することで行いました。再利用識別子はありません。セルとセルの行き先を追跡する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top