rpj*_*rpj 15 iphone cocoa-touch objective-c uitableview
当使用UITableViewController时,initWithStyle:方法会自动创建底层的UITableView,根据文档 - "正确的尺寸".
我的问题是这些"正确的尺寸"似乎是320x460(iPhone的屏幕尺寸),但我将这个TableView/Controller对推入UINavigationController,它本身包含在UIView中,它本身大约是屏幕高度的一半.
没有框架或边界争论似乎可以正确地重置表的大小,因此它"太长",这意味着有一系列行被推出屏幕底部并且不可见也不可通过滚动.
所以我的问题归结为:告诉UITableViewController将其组件UITableView调整为指定矩形的正确方法是什么?
谢谢!
更新我尝试了这里建议的所有技术无济于事,但我确实发现了一件有趣的事情:如果我完全避开UINavigationController(我不愿意为生产而做,而是作为实验),并添加作为表视图直接我所提到的封闭视图的子视图中,给定的帧大小被推崇.在那一刻我再推出的UINavigationController混进去,不管是以前还是表视图后添加作为一个子视图,也不管之前或表视图添加作为一个子视图后,如果分配/初始化吧,结果和以前一样.
我开始怀疑UINavigationController不是团队合作者......
更新2在屏幕上的表格视图之后检查帧大小的建议很好:事实证明导航控制器实际上在加载和显示之间的某个时间调整大小.我的解决方案,最好是hacky,一直缓存加载时给定的帧,如果在tableView:cellForRowAtIndexPath:的开头更改,则重置它.你问为什么?因为它是我找到的一个有用的地方,这就是原因!
我不认为这是一个解决方案,因为它显然是不合适的,但为了其他任何阅读的好处,它似乎确实有效.
我有同样的问题,我解决了它:
-(void) loadView {
    [self setView:[[[UIView alloc] initWithFrame:CGRectZero] autorelease]];
    [[self view] setAutoresizesSubviews:NO];
    /* Create & configure table and other views... */
    [self setResultsTable:[[RadarTableViewController alloc] initWithNibName:nil bundle:nil]];
    [[resultsTable view] setFrame:CGRectMake(0,45,320,200)];
}
这是在父(在我的情况下只是一个普通的UIViewController)控制器中完成的.
| 归档时间: | 
 | 
| 查看次数: | 15933 次 | 
| 最近记录: |