4

だから、これは私の(専門分野?)の範囲外なので、もっと経験豊富な人が私にイエスかノーの答えをくれるかどうか尋ねてみようと思いました.

そこで、私は Appcelerator Titanium を使用して、多くのテーブルビューを持つアプリを構築しています。iPhoneで「メッセージ」アプリが行うのとまったく同じように、下にスクロールする代わりに上にスクロールできるように、いくつかのtableViewが下から始まるように構築しようとしています。

それが機能する方法は、コンテンツが読み込まれ、テーブルビューが下部に固定された状態で自動的に読み込まれ、上にスクロールして古い投稿を見ることができます.

テーブルビューを作成し、データをロードしてから、一番下までスクロールする以外に、appceleratorでこれを行う方法を見つけることができません(明らかにスナップがあります)。テーブルビューを非表示にし、一番下までスクロールしてからテーブルビューを表示できますが、やはり... 理想的ではありません。

ここで質問です...標準の iOS SDK (appcelerator ではない) を使用して、テーブルを上部ではなく下部に固定するように設定することは可能ですか? そうでない場合は、どうにかして回避策を見つける必要があります。だったら、できればチタンモジュールに組み込んでみたい…。

とにかく、ありがとう!そして、うまくいけば、これはあなたの何人かにとって簡単な答えです.

4

2 に答える 2

9

実際、それは本当に些細なことです。このようなものはうまくいきます:

-(void)viewDidLoad {
   //place this at the bottom of your viewDidLoad method, or in any method that initially reloads the table
    NSIndexPath* ipath = [NSIndexPath indexPathForRow: myArray.count-1 inSection: 0];
    [tableView scrollToRowAtIndexPath: ipath atScrollPosition: UITableViewScrollPositionBottom animated: NO]
}
于 2012-08-19T05:11:14.470 に答える
1

viewDidLoad でスクロールしようとしましたが、View Controller が表示された後、ビューのテーブルの先頭が表示されます。

最初のスクロールに適した場所を見つけました。

- (void) viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];

    NSInteger lastSectionIndex = MAX(0, [self.chatTableView numberOfSections] - 1);
    NSInteger lastRowIndex = MAX(0, [self.chatTableView numberOfRowsInSection:lastSectionIndex] - 1);
    NSIndexPath *lastIndexPath = [NSIndexPath indexPathForRow:lastRowIndex inSection:lastSectionIndex];
   [self.chatTableView scrollToRowAtIndexPath:lastIndexPath atScrollPosition:UITableViewScrollPositionBottom animated:NO];
}
于 2014-04-21T04:45:42.840 に答える