1

Web フィード (JSON) から HTML コンテンツを取得するアプリを構築しています。ページの長さは、1 行から数百行までさまざまです。UIWebView は完全にスクロールできますが、追加のメニュー項目を表示するには、UIWebView の下に UITableView が必要です。これは、UIWebView だけでなく、ビュー全体をスクロールする必要があることを意味します。これは、UIWebView がまったくスクロールしてはならず、コンテンツに合わせてスケーリングする必要があることも意味します。

要するに、私の見解は次のとおりです。

UIImageView はヘッダー、UIWebView はコンテンツ、UITableView はフッター メニューです。隠しボタンは、それ自体へのセグエを作成するためにあります。

このコードで UIWebView のサイズを変更します。

-(void)webViewDidFinishLoad:(UIWebView *)webView{
     WebView.frame = CGRectMake(WebView.frame.origin.x, WebView.frame.origin.y, WebView.frame.width, [WebView sizeThatFits:CGSizeZero].height);
}

これは UIWebView で機能し、正しくサイズ変更されます。ただし、UITableView はサイズ変更された UIWebView の上に表示され、より大きな UIWebView によって押し下げられることはまったくありません。

第 2 に、このビューにはそれ自体へのセグエ (内部参照を含む wiki 構造のようなもの) があり、これは魅力のように機能します。しかし、ページに戻ると、UIWebView は元のサイズのままになり、サイズが変更されません。セグエにより、アプリは UIWebView の新しいサイズを何らかの形で忘れてしまいます。

ご覧のとおり、私はこれに苦労しています。「相対的な位置付け」が必要ですが、すべてが静的で絶対的なものに見えます。しかし、私は iOS プログラミングの初心者であり、Web 開発者のように考えています。セグエが UIWebView の高さを覚えていないのはなぜですか? UITableView がプッシュダウンされないのはなぜですか? ここで何が欠けていますか?(私は何か大きなものを見逃しているに違いない?)

4

2 に答える 2

0

以下のように、コントロールを次々に配置できます

CGRect rect=imageView.frame;
float y=rect.origin.y;

//We need to just change the y from the next control so for the next control y would be.

y=y+rect.size.height+20.0;// 20.0 px padding

//Now use the above rect to set the frame for next control in your case its webview

rect=webView.frame;

rect.origin.y=y;

webView.frame=rect; //Re-Assign with changed y value

//Now move to next

y=y+rect.size.height+20.0;// 20.0 px padding

rect=tblView.frame;

rect.origin.y=y;

tblView.frame=rect; //Re-Assign with changed y value

すべてのコントロールを次々に垂直方向に配置する必要があります。このコードをメソッドに配置し、コントロールのフレームが変化していると感じるたびにメソッドを呼び出すことができます..

お役に立てれば..

于 2013-04-04T08:56:50.593 に答える