ios - 带框架的 UIPageViewController

标签 ios objective-c uitableview uipageviewcontroller

我有一个包含两个页面的 UIPageViewController。第一个是自定义 UIViewController,第二个是 UITableViewController。该应用有一个 UINavigationController 和一个标签栏。

我想在 UIViewControllerUITableViewController 周围设置一个框架或边框。我尝试了多种解决方案,但没有一个适合我的问题。

我试图在我的 UIPageViewController 中使用这段代码:

CGRect pageViewRect = self.view.bounds;
pageViewRect = CGRectInset(pageViewRect, 10.0, 10.0);
self.pageViewController.view.frame = pageViewRect;

框架很好,但是当用户更改页面时框架不会移动。

我尝试了另一种解决方案,即以这种方式设置 UITableView 周围的边框:

CALayer *layer = self.tableView.layer;

[layer setFrame:CGRectMake(52, 52, 50, 50)];
[layer setBorderWidth:52.0];
[layer setBorderColor:[[UIColor colorWithWhite: 0.8 alpha: 1.0] CGColor]];
[layer setMasksToBounds:YES];

在这种情况下,框架太大了,但只是一个例子。问题是框​​架总是在表格 View 上方并覆盖文本。

我只需要一个围绕自定义 View 的框架和一个在用户更改页面时移动的表格 View 。

如果您需要更多信息,请告诉我。

更新

我尝试了 LoVo 和 Mahesh Agrawal 提出的解决方案,但我尝试的是一样的,问题可以在图像中看到:

border over table

如您所见,边框位于页眉上方(同样边框变大可以看出问题所在)。

最佳答案

我想这会对你有帮助

[self.tableView.layer setBorderWidth:2.0];
[self.tableView.layer setBorderColor:[UIColor whiteColor]];
[self.tableView.layer setMasksToBounds:YES];

尝试一次。对于您的另一个 View 也是如此。

更新

CGFloat borderWidth = 2.0f;

self.tableView.frame = CGRectInset(self.frame, -borderWidth, -borderWidth);
self.tableView.layer.borderColor = [UIColor yellowColor].CGColor;
self.tableView.layer.borderWidth = borderWidth;
self.tableView.layer.masksToBounds = YES;

关于ios - 带框架的 UIPageViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28811463/

相关文章:

java - 我将如何使用 NSTask 运行 .sh 文件并获取其输出?

ios - 在 UITextView 中检测点击的字符串

ios - 自定义表格 View 单元格选择字体颜色

objective-c - 为 hello world 启动什么样的项目重要吗?

ios - MKMapView中如何实现Ground Overlays

ios - 如何从Titanium移动项目资源文件夹下的iOS Titanium模块访问pdf文件?

iphone - 如何使用 Core Graphics 绘制弧线以及如何旋转该弧线

objective-c - 导航栏按钮背景图片大小

objective-c - 子类 Objective-C 类而不与父类(super class)链接?

ios - 如何消除 UITableView 左侧的边距,而不在右侧创建间隙?