2012-01-16 4 views
0

iOSでスクロール可能なコンポジットビューを作成する必要があります。つまり、ビューには、少なくとも1つのイメージ(おそらくボタン)とテキスト(太字のフォントなどで書式を設定したい)が含まれます。データの量、特にテキストの量は多分4行から多分100まで可変です。データはある程度の「可変」であり、特に画像とテキストはヒップで結合されません。iOSでコンポジットスクロール可能なビューを作成する最も良い方法は何ですか

このすべては、ポートレートのみのレイアウトで約280h x 115wピクセルの「枠」に収まる必要があります。

単一のUITextViewは、画像を表示したり、テキストを書式設定したりする機能を備えていません。

UIWebViewはイメージと書式設定されたテキストを表示する機能を提供しますが、ボタンは問題です(実行可能かどうかはわかりません)。

A UIScrollViewのは、簡単に画像やボタンを可能にし、その後のUIWebViewは、テキストのスクロールビューに埋め込むことができるが、その後スクロールが問題となる - 私は1つとしてスクロールするビュー全体をたいと思い、なしWebビューのサイズを変更してコンテンツを格納する必要があり、スクロール可能なスクロール可能なものが混乱することもありません(「予期しない動作」の警告)。

(私はこの時点で自分の考えを推測している私はあまりをしたいということです。)

ので、任意の提案ですか?私がここに必要なものに近づく最も良い方法は何ですか?

答えて

0

UIScrollViewの中にUIWebViewでテストすることをおすすめします。 iOS 5.0シミュレータに干渉はありません。 iOS 4.0に問題があるかどうかはわかりません。

干渉がある場合は、ウェブビューのuserInteractionEnabledプロパティをペン先やコードのいずれかにNOに設定して干渉を防ぐことができます。これにより、Webビューでのいずれかの接触が受け付けられないようになります。そのため、ユーザーは、ピンチズームやリンクの移動、テキストのコピーもできなくなります。

ウェブビューのデリゲートで、webViewDidFinishLoad:を実装してウェブビューのサイズを設定し、スクロールビューのcontentSizeを設定します。例:

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    CGRect frame = self.webView.frame; 
    frame.size = [self.webView sizeThatFits:CGSizeMake(frame.size.width, HUGE_VALF)]; 
    self.webView.frame = frame; 
    self.scrollView.contentSize = CGSizeMake(CGRectGetMaxX(frame), CGRectGetMaxY(frame)); 
} 
+0

少し危険な場合は、それは良い一般的な計画のように聞こえる。私は他人が何を提供しなければならないかを見ていきます。 (私は心を補うために数日を持っています。) –

1

iOS5では、UIWebViewにはscrollViewプロパティがあります。これは通常のUIScrollViewプロパティです。スクロールビューのサブビューとしてUIButtonを追加して、必要なものを実現できるはずですが、正しく配置することは難しいかもしれません。 iOS5以前は、UIWebViewのサブビューを循環して、isKindOfClassを持つUIScrollViewを見つけることができました。

+0

残念ながら、残念ながら私たちはiOS 4と5をターゲットにする必要があります。そして、それは少し怖いです(私は悪化したことを認めます)。 –

0

私は同様のことをしたとき、私はUIScrollViewに追加したビューを12個持っていましたすべてのビュー。確かに、いくつかの意見がさまざまな条件の下で隠される可能性があることを考えると、非常に退屈な作業でした。レイアウトコードは、実際には非常にシンプルで、上から下にビューをレイアウトしていましたが、醜いです。結論は、それが魅力のように、迅速かつ確実に機能することです。それをアニメーションブロックで自在にラップすることさえできます。