在 RootController 上调整 UITableView 的大小

发布于 2024-07-16 05:07:36 字数 283 浏览 9 评论 0原文

是否可以在基于导航的应用程序的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

美煞众生 2024-07-23 05:07:36

最简单的方法是调整contentInset(继承自UIScrollView)。 通过设置框架来调整大小可能会导致单元格中出现疯狂的绘图错误。

例如,如果您尝试调整键盘的表格视图大小,请执行以下操作:

tableView.contentInset = UIEdgeInsetsMake(0.0, 0.0, 216.0, 0.0);
tableView.scrollIndicatorInsets = tableView.contentInset;

希望对某人有帮助。 这种方式最适合我。

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:

tableView.contentInset = UIEdgeInsetsMake(0.0, 0.0, 216.0, 0.0);
tableView.scrollIndicatorInsets = tableView.contentInset;

Hope that helps someone. This way worked best for me.

两个我 2024-07-23 05:07:36

是的,但是您需要有一个 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.

如日中天 2024-07-23 05:07:36

您也可以只设置 tableview 的 Content 和 Scroller 插入

You could also just set the Content and Scroller inset of the tableview

情深缘浅 2024-07-23 05:07:36

我在尝试单独显示详细控制器时遇到了类似的问题,请参阅: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.

谁把谁当真 2024-07-23 05:07:36

是的,调整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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文