Dav*_*ave 28 objective-c uitableview ios uirefreshcontrol
我的UIRefreshController正在做一些奇怪的事情.当我下拉刷新时,tableView标头被移位.
如果我下拉它看起来不错,但如果我向下滚动表时,复习仍在工作,头被刷新控制的高度,而UITableCells是罚款和滚动头之后偏移.
我想避免创建一个tableViewController,所以我在viewDidLoad中执行以下操作:
_refreshControl = [[UIRefreshControl alloc] init];
[_refreshControl addTarget:self action:@selector(refresh) forControlEvents:UIControlEventValueChanged];
[_tableView addSubview:_refreshControl];
Run Code Online (Sandbox Code Playgroud)
我在不同的视图控制器中有很多表需要这个功能.有什么方法可以避免为每个人制作一个UITableViewController吗?
万分感谢!
iDe*_*Dev 18
这可能是一个问题,因为您要添加_refreshControl
为不应该完成的子视图.但是,您可以创建一个UITableViewController
对象,将其添加为当前viewcontroller类的子视图控制器.
例如: -
UITableViewController *tableViewController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
[self addChildViewController:tableViewController];
tableViewController.refreshControl = [[UIRefreshControl alloc] init];
[tableViewController.refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
tableViewController.tableView.frame = CGRectMake(...);//set the frame here
[self.view addSubview:tableViewController.tableView];
Run Code Online (Sandbox Code Playgroud)
Fon*_*nix 17
快速解决这个问题就是这样
//header
@property UITableViewController *tableController;
//.m (right at the beginning of viewDidLoad for example)
self.tableController = [[UITableViewController alloc] init];
[self addChildViewController:self.tableController];
self.tableController.tableView = self.tableView;
...
//then create the refresh control and assign it to the UITableViewController
self.tableController.refreshControl = refreshControl;
Run Code Online (Sandbox Code Playgroud)
//Create an instance of a UITableViewController. This will host your UITableView.
private let tableController = UITableViewController()
//Add tableController as a childViewController and set its tableView property to your UITableView.
self.addChildViewController(self.tableController)
self.tableController.tableView = self.tableView
self.refreshControl.addTarget(self, action: "refreshData:", forControlEvents: .ValueChanged)
self.tableController.refreshControl = self.refreshControl
Run Code Online (Sandbox Code Playgroud)
如果您将表格连接到IBOutlet并将其他内容链接到故事板中,那么这会有所帮助.
归档时间: |
|
查看次数: |
9308 次 |
最近记录: |