我试图在TableViewController中的tableview下面添加这个自定义控件: https://github.com/zogieosagie/RMEIdeasPullToSortControl
在创建者给出的示例中,控件是使用ViewController和添加的tableview实现的,但我想在TableViewController中使用它。我已经创建并初始化了它,如示例中所示,但我不能让它显示在桌子后面。有什么想法吗?
以下是我的tableview上方控件的屏幕截图:https://www.dropbox.com/s/ojfpacxelcy9cqm/Photo%20May%2028%2C%208%2057%2035%20PM.png
以下是viewDidLoad方法中的代码:
[self.tableView setBackgroundColor:[UIColor clearColor]];
self.rmeideasPullDownControl = [[RMEIdeasPullDownControl alloc] initWithDataSource:self delegate:self clientScrollView:self.tableView];
self.sortTitlesArray = [[NSArray alloc] initWithObjects:@"Listed from A - Z", @"Listed from Z - A", @"Brand value: HIGHEST - LOWEST", @"Brand value: LOWEST - HIGHEST", @"Founded: OLDEST - NEWEST", @"Founded: NEWEST - OLDEST", nil];
CGRect originalFrame = self.rmeideasPullDownControl.frame;
self.rmeideasPullDownControl.frame = CGRectMake(0.0, 45.0, originalFrame.size.width, originalFrame.size.height);
//It is recommended that the control is placed behind the client scrollView. Remember to make its background transparent.
//[self.view insertSubview:self.rmeideasPullDownControl belowSubview:self.tableView];
[self.tableView addSubview:self.rmeideasPullDownControl];
[self.tableView sendSubviewToBack:self.rmeideasPullDownControl];
答案 0 :(得分:1)
表视图控制器不适合管理除表视图之外的任何内容。在表视图控制器中,视图控制器的内容视图是表视图。
您不应尝试将其他视图添加为表视图的子视图。
这两件事合起来意味着你无法做你想做的事。
相反,您应该创建一个常规的UIViewController。在故事板中,将容器视图添加到视图控制器的内容视图中。创建一个UITableViewController作为单独的场景,然后从容器视图控制拖动到表视图控制器。这将设置一个嵌入segue,因此您的表视图控制器将成为常规视图控制器的子视图。现在,您可以对主视图控制器的内容视图执行任何操作,包括在表视图后面添加其他视图。
答案 1 :(得分:0)
你的意思是你在故事板上使用表视图控制器吗?或者你的意思是你的支持代码是UITableViewController的子类吗?
之前我没有使用过这个项目,但我猜你在故事板上使用的是Table View Controller,在这种情况下,没有RMEIdeasPulldownControl附加的后备视图(顶层视图是UITableViewController) )。如果您查看示例,则需要将其附加到scrollview(如表视图),但需要将其插入到视图中(如UIView)
如果你的意思是第二个,那么我不确定,UITableViewControllers是UIViewControllers的子类,并且非常相似,所以我无法想象由此引起的任何麻烦。
答案 2 :(得分:0)
不可能直接使用,但您可以使用相关的故事板创建UIViewControllerClass
UIViewController
MyUIView
,然后在UITableView
MyUIView
UITableView
的数据源和代理,并根据您的要求使用MyUIView
。