在 UIScrollView 中的 UITableViewController 的 UITableViewCell 的右侧看不到控件
Cannot see control on the right hand side of the UITableViewCell of a UITableViewController inside an UIScrollView
我试图在水平 UIScrollView
中显示 2 UITableViewController's
。我正在使用 AUtoLayout
和 Size Classes
。我的故事板大小为 Inferred
。这是我为测试所做的:
- 添加
UIScrollView
并从 Resolve AutoLayout Issues
中选择 Update Constraints for AutoLayout
。
- 设置一个
UITableViewController
和一个继承自 UITableViewDelegate
和 UITableViewDataSource
的 UIViewController
(我想尝试两种方法来使用 table 视图)
- 对于这两个,我在右侧添加了一个
UIButton
,对于 AutoLayout,我选择将顶部和尾部边缘固定在右侧。
在 运行 UITableViewController
的代码之后,如果单击单元格,我只能从 Button "n" 中看到按钮。
对于 UIViewController
table 视图,我根本看不到按钮。
这是一个打印屏幕:
这是我的滚动视图控制器代码:
override func viewDidLoad() {
super.viewDidLoad()
self.automaticallyAdjustsScrollViewInsets = false
let testTableVC = self.storyboard!.instantiateViewControllerWithIdentifier("TestTableViewController") as! TestTableViewController;
let testVC = self.storyboard!.instantiateViewControllerWithIdentifier("TestViewController") as! TestViewController;
var bounds = UIScreen.mainScreen().bounds
var width = bounds.size.width
var height = bounds.size.height;
scrollView!.contentSize = CGSizeMake(2*width, height);
let viewControllers = [testTableVC, testVC]
var idx:Int = 0;
for viewController in viewControllers {
// index is the index within the array
// participant is the real object contained in the array
addChildViewController(viewController);
let originX:CGFloat = CGFloat(idx) * width;
viewController.view.frame = CGRectMake(originX, 0, width, height);
scrollView!.addSubview(viewController.view)
viewController.didMoveToParentViewController(self)
idx++;
}
}
编辑:
我创建了解决此问题的拉取请求。错误的是您使用了默认 UITableViewCell
并在情节提要中向其添加了一些自定义内容。 Table 视图然后将默认单元格出队,并在故事板中的单元格顶部绘制默认单元格(两侧有边距 - 因此只有按钮的右侧部分可见)。您需要创建自定义 UITableViewCell
、连接出口并使自定义单元出列,默认单元对您的按钮一无所知。
我试图在水平 UIScrollView
中显示 2 UITableViewController's
。我正在使用 AUtoLayout
和 Size Classes
。我的故事板大小为 Inferred
。这是我为测试所做的:
- 添加
UIScrollView
并从Resolve AutoLayout Issues
中选择Update Constraints for AutoLayout
。 - 设置一个
UITableViewController
和一个继承自UITableViewDelegate
和UITableViewDataSource
的UIViewController
(我想尝试两种方法来使用 table 视图) - 对于这两个,我在右侧添加了一个
UIButton
,对于 AutoLayout,我选择将顶部和尾部边缘固定在右侧。
在 运行 UITableViewController
的代码之后,如果单击单元格,我只能从 Button "n" 中看到按钮。
对于 UIViewController
table 视图,我根本看不到按钮。
这是一个打印屏幕:
这是我的滚动视图控制器代码:
override func viewDidLoad() {
super.viewDidLoad()
self.automaticallyAdjustsScrollViewInsets = false
let testTableVC = self.storyboard!.instantiateViewControllerWithIdentifier("TestTableViewController") as! TestTableViewController;
let testVC = self.storyboard!.instantiateViewControllerWithIdentifier("TestViewController") as! TestViewController;
var bounds = UIScreen.mainScreen().bounds
var width = bounds.size.width
var height = bounds.size.height;
scrollView!.contentSize = CGSizeMake(2*width, height);
let viewControllers = [testTableVC, testVC]
var idx:Int = 0;
for viewController in viewControllers {
// index is the index within the array
// participant is the real object contained in the array
addChildViewController(viewController);
let originX:CGFloat = CGFloat(idx) * width;
viewController.view.frame = CGRectMake(originX, 0, width, height);
scrollView!.addSubview(viewController.view)
viewController.didMoveToParentViewController(self)
idx++;
}
}
编辑:
我创建了解决此问题的拉取请求。错误的是您使用了默认 UITableViewCell
并在情节提要中向其添加了一些自定义内容。 Table 视图然后将默认单元格出队,并在故事板中的单元格顶部绘制默认单元格(两侧有边距 - 因此只有按钮的右侧部分可见)。您需要创建自定义 UITableViewCell
、连接出口并使自定义单元出列,默认单元对您的按钮一无所知。