2011-12-29 12 views
4

私はいくつかのログ情報を追加するMT.Dialogを持っています。モノトゥッチ:MT。

行の高さは異なる場合があります。

MT.Dialogが常に最後までスクロールして、最後の行全体が常に表示されることを確認するにはどうすればよいですか?

しかし、ユーザーがリストを上にスクロールすると、新しい行を追加するときに下にスクロールしてはなりません。

提案がありますか?

ありがとうございます! Mojo

答えて

7

ええと、あなたの実装やルート要素の構造についてもっと知らなくても、私はそのトップレベルのみがネストされていないと推測することができます。それは

var lastIndexPath = this.Root.Last()[this.Root.Last().Count-1].IndexPath; 
this.TableView.ScrollToRow(lastIndexPath, UITableViewScrollPosition.Middle, true); 

...あなたは、単に、配列内の最後の行のindexPathをつかむことのインデックスパスを取得し、プログラム的にそれまでテーブルビューをスクロールすることができます....言われています。

参考までに、indexPathを取得するコードはテストされていませんが、正常に動作するはずです。あなたのクラスのトップに次のように定義してください:-)

using System.Linq; 
+0

大変感謝しています! ...コードを実行する前に最後の行が表示されているかどうかを確認するだけで済みます。ユーザーがリストを上にスクロールすると、最後の行が表示されてはなりません。何か案が? – MojoDK

+1

短い答え:サブクラスの要素、GetCellをオーバーライドし、ScrolledToBottomの状態を追加し、GetCellで状態管理を行います。 – Anuj

関連する問題