2010-11-28 20 views
0

ぶらついていますが、これは別の初心者のiPhone/Objective-C質問です。UITableViewのボトム/右揃え

私は単純なRPN電卓である私の最初のiPhoneアプリに取り組んでいます。私はスタックの内容を表示するテーブルを持っています、そして、今私はディスプレイを少し微調整したいと思います。

スタックの最後のエントリがテーブルの下部に表示され、テキストが右揃えになります。右揃えは

cell.textLabel.textAlignment = UITextAlignmentRight; 

で簡単だったと私は、テーブルには、このコードでビューの下に最後のエントリペグ作ることができます。

NSIndexPath *scrollIndexPath = [NSIndexPath indexPathForRow:(stackSize - 1) inSection:0]; 
[tableView scrollToRowAtIndexPath:scrollIndexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES]; 

素晴らしい作品が、より多くのエントリがある場合にのみ、ビューに収まるよりも積み重ねられています。スタックのエントリ数が少ない場合でも、スタックのビューの一番上に配置されます。

最初のスタックエントリのセルの高さを変更して、最初のセルがビュー全体を塗りつぶし、新しいセルが追加されると縮小しました。セルの高さはそのままにします。これは有望だと思われましたが、ラベルを一番下に合わせるために「ビッグ」セルを取得するのにはいくつか問題があります。

私がボトムアライメントのものをハッキングしていたとき、私はこれが必要以上に複雑になっているのか疑問に思い始めました。何かご意見は?

答えて

3

これが正当なものかどうかわかりませんが、ビュー変換を使用してテーブルを180°回転させ、各セルを180°回転させることができます。私はこのトリックを使って、私が書いているアプリに横のテーブル(180°ではなく90°)を作成します。

+0

うわー、これはスマートです!この回答は承認されていませんでしたが、それはされている必要があります:) – kolinko

+0

ありがとう@メルリン。あなたは最終結果[ここ](http://squz.com/esfera.html)を見ることができます。一番上のコントロールバーは実際にはテーブルであり、すぐにアクティブなオンラインゲームのスクロール可能なリストになります。 –

0

もう1つの方法は、行を追加または削除するときにテーブルビューのサイズを変更することです。高さを更新し、それに応じてテーブルビューを移動します。このような何かは非常にOKになります。

- (void)resizeTableView { 
    CGFloat tableViewHeight = [self tableView:self.tableView numberOfRowsInSection:0] * self.tableView.rowHeight; 

    // remember to check the height !! 

    CGRect frame = self.tableView.frame; 
    frame.size.height = tableViewHeight; 
    frame.origin.y = BOTTOM_OF_VIEW - tableViewHeight; 
    [UIView animateWithDuration:0.3 animations:^{ 
     [self.tableView setFrame:frame]; 
    }]; 
} 

あなたがUITableViewRowAnimationNoneにそれらを設定することを忘れないで、挿入のためのデフォルトのアニメーションを使用して、削除されている場合は、それ以外の場合は奇妙に見えます。