2010-11-28 89 views
0

Aplogies,但这是另一个新手iPhone/Objective-C问题。UITableView的底部/右侧对齐

我正在研究我的第一个iPhone应用程序,它是一个简单的RPN计算器。我有一个表格显示堆叠的内容,现在我想稍微调整一下显示。

我希望堆栈中的最后一个条目显示在表格底部,文本右对齐。右对齐很容易与

cell.textLabel.textAlignment = UITextAlignmentRight; 

,我可以使表挂的最后一个条目的视图的底部,此代码:

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

伟大的工程,但只有当有多个条目在堆叠上比将适合在视图。当堆栈中的条目很少时,它们仍然对齐到视图的顶部。

我已经为第一个堆栈条目改变了单元格的高度,使得第一个单元格填满了整个视图并缩小,因为添加了新的单元格,直到有足够的堆栈条目填充视图,这点指出了细胞高度是孤立的。这看起来很有希望,但我在将“大”单元格对齐标签时遇到了一些麻烦。 (它是垂直居中对齐,默认情况下。)

当我在底部对齐事情劈砍而去,我开始怀疑我在做这个复杂得多,它需要的。有什么想法吗?

回答

3

我不知道这是否是犹太教,但您可以使用视图变换旋转台180°,然后旋转每个单元180°。我使用这个技巧在我正在写的应用上创建横向表格(90°而不是180°)。

+0

哇,这是聪明的!这个答案没有被批准,但它应该是:) – kolinko 2011-05-08 10:59:50

0

另一种方法是在添加或删除行时调整表视图的大小。您更新高度并相应地移动表格视图。像这样的东西看起来相当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,否则它看起来很奇怪。