2012-05-08 8 views
0

メッセージングアプリの組み込みビューを再作成しようとしています。私は「前にロード」をクリックすると、ボトムにトークバブルを追加するだけでなく、トップに追加する必要があります。スクロールビューの先頭にコンテンツを追加する

私の主な問題は、もっと上にロードすると、残りの話のバブルをどのように押し下げるのか分かりません。私にとってはかなり苦労しています。

私はUIScrollViewのサブクラスで作業しています。そのために "innerView"を追加しました。

私がしていることは、ラベルの上にマイナスの値を、ボトムにプラスの値を付け加えることです。私は最後のポジションを "topLabelsPosition"と "bottomLabelsPosition"に保存します

誰でもこれを助けることができますか?ここに私のコードは

CGFloat whereToScroll = 0.0; 
CGFloat topOfContent = self.topLabelsPosition.origin.y; 
CGFloat bottomOfContent = self.labelsPosition.origin.y; 

CGFloat fullHeight = fabs(bottomOfContent)+fabs(topOfContent); 

[innerView setFrame:CGRectMake(0,topOfContent,self.frame.size.width, fullHeight)]; 

if(is_adding_to_top) { 
    whereToScroll = topOfContent; 
} else { 
    whereToScroll = bottomOfContent; 
} 

[self setContentSize:contentSize]; 
CGPoint point = {0, whereToScroll}; 
[self setContentOffset:point]; 

だ私の「innerViewは、」上に大きな得ることはありませんが、下に - 私は、背景色で伝えることができます。 そして私のscrollviewは-300.00(topOfContent)までスクロールしません。

私は何かを書き直すことができます。あなたがとても親切であれば、私はすべての耳です。

ありがとうございました!

+0

正しい方法 –

+0

感謝サンダーラビットあなたを導くことがあり、「無限スクロール」のようなものを検索し、私は今、このビデオで – Brian

+0

技術を見てみましょう:https://developer.apple.com/videos/wwdc/2011 /#advanced-scrollview-crazyのように役立つテクニック – Brian

答えて

0

Messages.appをよく見ると、上部に新しいバブルを読み込むときにスクロールしません。彼らはちょうど点滅します。新しいメッセージがスクロールしている最下部に現れるのとは対照的に

私は彼らを(0,0)に追加して、コンテンツビューでscrollViewを下に移動します。したがって、-xxx yに追加するのではなく、0 + yを追加して、すでに同じ量だけ内側にあるすべてのフレームを調整してみてください。

これが役に立ちます。

+0

ヘルプRyanに感謝します。あなたは、追加されたすべてのバブルを追跡する良い方法がありますか、または私はちょうど配列でそれらをプッシュし、ループを通過し、各フレームをバンプする必要がありますか? – Brian

+0

それは簡単だろうから、私はおそらく最初の配列の配列でそれを行うだろう。パフォーマンスの問題が発生した場合は、ラスタライズとキャッシュが役立ちます。それが実際に大量のバブルを持っていて、パフォーマンスが重大になるなら、私はUITableViewのようにデキューするか、またはUITableViewサブクラスに移動することもできます。一度UITableViewサブクラスを使用すると、reloadData、insertRowsAtIndexs、リストの最適化のスイートビルドも取得できます。 –

+0

ライアンさん、ありがとうございます! – Brian

関連する問題