在 RootController 上调整 UITableView 的大小
是否可以在基于导航的应用程序的 RootController 上调整 UITableView 的大小? 当 RootViewController.xib 在 IB 中打开时,没有视图。 只是 UITableView。 单击检查器,然后单击黄色小标尺,框架高度将变灰。 我以编程方式向 RootViewController 添加一个工具栏:
[toolbar setFrame:rectArea];
效果很好,但表格视图中的底部单元格部分隐藏,因为表格视图不知道工具栏。
Is it possible to resize the UITableView on the RootController of a nav based app? When RootViewController.xib is opened in IB, there isn't a view. Just the UITableView. Clicking the inspector and then the little yellow ruler, frame height is grayed out. I'm adding a toolbar programmatically to the RootViewController:
[toolbar setFrame:rectArea];
That works fine but the bottom cell in the tableview is partially hidden because the tableview doesn't know about the toolbar.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
最简单的方法是调整contentInset(继承自UIScrollView)。 通过设置框架来调整大小可能会导致单元格中出现疯狂的绘图错误。
例如,如果您尝试调整键盘的表格视图大小,请执行以下操作:
希望对某人有帮助。 这种方式最适合我。
The easiest way, is to adjust the contentInset (which is inherited from UIScrollView). Resizing by setting the frame can cause crazy drawing bugs in cells.
For example, if you are trying to resize a tableview for the keyboard, do something like this:
Hope that helps someone. This way worked best for me.
是的,但是您需要有一个 ViewController (不是 UITableViewController)作为导航的根控制器,并将实际的 UITableView 包装在 UIViewControllers 视图中。
您仍然可以让 UIViewController 符合 UITableViewDelgate 和 Datasource 协议,并使用 UITableViewController 中现在拥有的所有相同方法。
PS:如果您使用普通的“iphone”标签,您会得到更多回复。
Yes, but you need to have a ViewController (not a UITableViewController) as the root controller for the nav, and wrap the actual UITableView in the UIViewControllers view.
You can still have the UIViewController conform to the UITableViewDelgate and Datasource protocols, and use all the same methods you have now in your UITableViewController.
P.S. you'll get more responses if you use the plain "iphone" tag.
您也可以只设置 tableview 的 Content 和 Scroller 插入
You could also just set the Content and Scroller inset of the tableview
我在尝试单独显示详细控制器时遇到了类似的问题,请参阅:http://vimeo.com/13054813
问题在于,SplitView 控制器将其自己的转换应用于子控制器,将它们从方向检测循环中取出,这令人震惊,并且对于内置类来说似乎非常“hackish”。 (该视频说明了当您将详细视图设置为根视图,然后将其添加回分割视图并在横向时将分割视图设置为根视图时会发生什么;您将获得详细视图的双重旋转。)
不幸的是,我再次运行在尝试调整 SplitViewController 的详细子视图的大小以响应键盘出现/消失时,会遇到这些转换问题。 在肖像中,一切都很好,在风景中则很糟糕。
I encountered a similar issue when attempting to display the detail controller by itself, see: http://vimeo.com/13054813
The issue is that the SplitView controller applies its own transform to the sub-controllers, taking them out of the orientation detection loop, which blows goats and seems incredibly 'hackish' for built-in classes. (The video illustrates what happens when you make the detail view the root view, then add it back to the split view and make the split view root while in landscape; you get double rotation of the detail view.)
Unfortunately I've again run into these transformation issues while attempting to resize a SplitViewController's detail sub-view in response to the keyboard appearing/disappearing. In portrait, all works fine, in landscape it's fscked.
是的,调整contentInset和scrollIndicatorInsets是调整UITableView大小的便捷方法。
作为 答案 Sam Soffes 发布,我成功在 UITableViewController 中调整底部 UIToolbar 中的 UITableView 大小。
Yes, adjust the contentInset and scrollIndicatorInsets are the convenient way to resize the UITableView.
As the answer of Sam Soffes posted, I succeed resize UITableView in UITableViewController for the bottom UIToolbar.