• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - UIRefreshControl 怪异

[复制链接]
菜鸟教程小白 发表于 2022-12-12 09:25:29 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

今天刚开始使用“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-推荐答案


你不需要添加一个刷新控件,或者在你的 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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap