使い方を教えてください、UIWebView表することは可能です。
-
22-07-2019 - |
質問
私はビルにテーブルをテキストのあるHTMLで使用していUIWebViewとしてsubviewのカスタムテーブル細胞。っていた問題の一つとして、私はスクロールのテーブルでの必要が生じた場合、東京地方UIWebViews第更新してしまいました。例えば、今までの可視セルの行番号1,2,3今までスクロールして、言8、9、10.一瞬のコンテンツのUIWebViewした可視細胞#8のコンテンツからの細胞#1に、コンテンツは細胞#9ったことから細胞#2です。
私たちは、そうした問題があったUIWebViewsだけを描画するのを遅くなります。る可能性が示唆された代わりにプリロードのコンテンツのUIWebViewと思うの待ってまでのテーブルを受け取cellForRowAtIndexPath.それでは、ドメインのオブジェクトの前にあるテキストコンテンツのWebViewが、現在では、実際には参考にUIWebViewそのものです。
今は一部のコンテンツのUIWebView描画し合いスクロールを通じて、テーブルのUIWebViewされることに注意してくださいと、灰色のボックス。いタッチにグレーボックスでは実際に触れ、更新、WebViewえばタッチリンクひっきりなしに変わりはありませんし、以降のボックスがグレーできるストロークの運)のページにリンクを依頼しますので、表示されます。
- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier]) {
// I suppose this isn't necessary since I am just getting it from the
// Domain Object anyway
content = [[UIWebView alloc] initWithFrame:CGRectZero];
content.backgroundColor = [UIColor blackColor];
[self addSubview:content];
[content release];
}
return self;
}
// called by cellForRowAtIndexPath
- (void)setMyDomainObject:(MyDomainObject*)anObject {
UIWebView *contentWebView = anObject.contentWebView;
int contentIndex = [self.subviews indexOfObject:content];
[self insertSubview:contentWebView atIndex:contentIndex];
}
解決
一方それに対応するために使用数UILabels、それぞれ異なるフォント.そして戦略的にして細胞内においてそのように接続します。私がここで行われUITableViewを非常に嬉しく思っております。
他の性能に問題が生じる可能性がありさまoveriding UItableViewCellかのinitメソッド.このほとんど常に広く使われるようになってきにUITableView.代わりにだけ使用のUITableViewCellインスタンスに追加subviewsでのcontentView.
これは対象に幅広くマットヴィメタルバンドの 簡単カスタムUITableViewの描画.
もう一つの方法に記載した利用Three20も可能ですstyled textしています。
するように、現在ではできませんとUIWebview.
プリロードになるようにこのUIの場合UIWebviewsが描画されるオフスクリーン;しなければなりませんの練習のぐさの負荷がiPhoneです。
をUIWebviewsにUITableViewする潜在的に認性能。お使いこなせるよう、最低限必要なその他の手段でお気軽にご連絡をください。
残念ながら、NSAttributedStringきUIKit、簡単に解決問題です。
他のヒント
そこでの私の更新回答:私の実施テーブルを一つの大きなUIWebViewけstyled text内のテーブル細胞の自分のTwitterクライアントアプリ HelTweetica (ソース。しかもどのようなレイアウト、HTMLとCSSで
あなただけの作成 NSMutableString
追加のラインのHTMLはどのくらいですか。できる外部参照ファイルなどのCSSファイルお客様アプリの出来上がります。設定できるカスタムのURLなどを行なってい"youraction://file.txt"このウェブビュー委譲できる遮断と処置き換え用として IBAction
s:
- (void) refreshWebView {
TwitterAccount *account = [twitter currentAccount];
NSMutableString *html = [[NSMutableString alloc] init];
// Open html and head tags
[html appendString:@"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"];
[html appendString:@"<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n"];
[html appendString:@"<head>\n"];
[html appendString:@"<meta name='viewport' content='width=device-width' />"];
[html appendString:@"<link href='style-ipad.css' rel='styleSheet' type='text/css' />"];
[html appendString:@"<script language='JavaScript' src='functions.js'></script>"];
// Body
[html appendString:@"</head><body><div class='artboard'>"];
// [...]
// Close artboard div, body. and html tags
[html appendString:@"</div></body></html>\n"];
NSURL *baseURL = [NSURL fileURLWithPath: [[NSBundle mainBundle] bundlePath]];
[self.webView loadHTMLString:html baseURL:baseURL];
[html release];
}
きリロードのページにjavascriptを使用:
- (void) refreshTabArea {
NSString *html = [self stringByEscapingQuotes: [self tabAreaHTML]];
NSString *js = [NSString stringWithFormat: @"document.getElementById(\"tab_area\").innerHTML = \"%@\";", html];
[self.webView stringByEvaluatingJavaScriptFromString:js];
}
より内容物が目に入った場合には、ウェブビューは、styled textはハイパーリンクするためのThree20プロジェクト: http://github.com/joehewitt/three20/tree/master
その TTStyledText
クラスの支援 <b>, <i>, <img>, and <a>
タグの内容です。も軽量化によwebviews.
こんに回答元の問題が一歩を見つめると、大きな画像であれば、表示しようとし、ハイパーリンクテーブル、細胞となると、をクリックすると、次のようにまでは、webブラウザです。それぞれ同一またstyled textは、テーブルセルのように見えるヒントをリンクが別画面でフル画面でウェブビューをまとめて見ることができる""をタップし、リンク?
おっとりまとめるとともにsetRowAtIndexPath'がるといcellForRowAtIndexPath'であるUITableViewと呼ばれる手法が行が見えるようになるとニーズを細胞くにこの方法で適切に初期化や更新の細胞。
てんかをオーバーのprepareForReuse法テーブルの細胞サブクラス?場合には、細胞がいなかったのでしょうか更新時のスクロールできるコンテンツの再利用可能な細胞になれるクリアされ、リセットします。
私自身は、WebViewんを描画する場合を除き開始の読み込みでviewDidLoad()などが挙げられる。