今天刚开始使用“UIRefreshControl”,发现了一些奇怪的东西。
如果我在 InterfaceBuilder 中创建了 UIRefreshControl,并将其全部连接起来,我的选择器永远不会被调用。 IB 说控件应该触发“值已更改”消息,并且应该调用我的代码,但永远不会。
所以我放弃了在 Interface Builder 中执行此操作,而是决定在代码中执行此操作。没有太多的行。所以我把这段代码放在我的“viewDidLoad”例程中:
self.refreshControl = [UIRefreshControl new];
[self.refreshControl addTarget:self actionselector(doStuff forControlEvents:UIControlEventValueChanged];
NSMutableParagraphStyle* paragraphStyle = [NSMutableParagraphStyle new];
paragraphStyle.alignment = NSTextAlignmentCenter;
self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString"ull to refresh" attributes{NSParagraphStyleAttributeName : paragraphStyle}];
它画得很好,但是当 View 第一次出现时刷新控件是可见的。我希望它在用户实际拉下 table 之前不可见。我正在调用 Web 服务,等待结果返回,然后填充表格。因此,您只能看到一两秒钟的控件。但它看起来很奇怪。
所以,问题是:
1.这是一个已知的bug,你不能单独从Interface Builder中连接控件吗?
2. 有没有办法将此控件添加到 table-view Controller ,直到用户真正想看到它才出现?
Best Answer-推荐答案 strong>
你不需要添加一个刷新控件,或者在你的 viewController 中声明一个。添加下拉刷新是一个两步过程。
第 1 步:在 Storyboard 中,转到 tableViewController,然后在显示“刷新”的位置选择“启用”。
第 2 步:将以下代码添加到 tableViewController.m 文件的 viewDidLoad 中:
[self.refreshControl addTarget:self
actionselector(refresh)
forControlEvents:UIControlEventValueChanged];
这就是整个过程,除了在你的 -refresh 方法中做一些事情。没有更多的了。
关于ios - UIRefreshControl 怪异,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/15206205/
|