首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

带有UIRefreshControl的ScrollView在显示为模型表时不会刷新

的原因是因为UIRefreshControl只能与UITableView和UICollectionView等具有滚动功能的视图控件配合使用,而ScrollView并不具备滚动功能。

解决这个问题的方法是将ScrollView替换为UITableView或UICollectionView,并在其上添加UIRefreshControl。具体步骤如下:

  1. 创建一个UITableView或UICollectionView的实例,并设置其代理和数据源。
  2. 创建一个UIRefreshControl的实例。
  3. 将UIRefreshControl添加到UITableView或UICollectionView的refreshControl属性中。
  4. 在代理方法中实现数据的加载和刷新逻辑。

下面是一个示例代码:

代码语言:txt
复制
import UIKit

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    let tableView = UITableView()
    let refreshControl = UIRefreshControl()

    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 设置tableView的frame和其他属性
        tableView.frame = view.bounds
        tableView.delegate = self
        tableView.dataSource = self
        
        // 添加refreshControl到tableView
        tableView.refreshControl = refreshControl
        
        // 添加tableView到视图中
        view.addSubview(tableView)
        
        // 监听refreshControl的刷新事件
        refreshControl.addTarget(self, action: #selector(refreshData), for: .valueChanged)
    }
    
    @objc func refreshData() {
        // 在这里实现数据的加载和刷新逻辑
        
        // 加载数据完成后,调用endRefreshing方法结束刷新
        refreshControl.endRefreshing()
    }
    
    // 实现UITableView的代理和数据源方法
    // ...
}

在这个示例中,我们创建了一个UITableView的实例,并将其添加到视图中。然后创建了一个UIRefreshControl的实例,并将其添加到UITableView的refreshControl属性中。最后,在refreshData方法中实现了数据的加载和刷新逻辑,并在加载完成后调用endRefreshing方法结束刷新。

这样,当用户下拉UITableView时,就会触发refreshData方法,从而实现数据的刷新。

推荐的腾讯云相关产品:腾讯云移动应用分析(MTA),该产品可以帮助开发者实时监控和分析移动应用的用户行为和性能数据,提供丰富的数据分析和可视化报表,帮助开发者优化应用性能和用户体验。

产品介绍链接地址:https://cloud.tencent.com/product/mta

相关搜索:Injected Font-带有Javascript的DOM的漂亮图标在页面刷新之前不会显示在mysql上每次刷新时显示来自不同表的数据当我刷新时,在使用带有useEffect钩子的history.push接收数据时,数据设置为未定义在Postgres中创建表时,将空列设置为带有时区的时间戳在追加时,嵌套列表中存在的列表不会显示为已索引(索引已更改)当表中的数据为空时,在自定义列中显示记录刷新内容时,外部php文件中更新的字符串变量不会显示在html/浏览器上。在Salesforce (Rabbit hole)上检查时,阴影DOM不会显示在带有阴影根的自定义元素中Django在admin站点中查看与在脚本中查询模型时,为同一模型属性显示两个不同的时区使用date_format()函数时,mysql数据库中的数据不会显示在html表中。在VM构造函数中为属性赋值时,textbox的WPF数据绑定不会在设计器中显示在嗅探接口上的流量时,主机的Python socket.bind()不会显示带有SIO_RCVALL的传入数据包C# -在我的数据网格中,当我使用带有order by 'Id‘Desc的存储过程时,我的表单不会随Desc一起显示将SwiftUI警报或操作表绑定到值类型模型属性的可选性的好方法是什么(当属性为nil时显示视图)?Google地图是隐藏的,并且在我将其设置为动画时不会显示,请参阅问题中的图像以了解我的意思在google地图中计算和绘制两个标记之间的路径时,标记不会显示为选择自和目标位置
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

六天完成一个简单iOS App - 第四天

titleView也是添加在主控制器上,显示在scrollView上面,保证titleView永远显示在主控制器的View上,不会随着scrollView的滚动而滚动。...其实这里add方法是不会重复添加的,即使添加成千上万次也只会添加一次。 至此,精华界面的搭建已经基本完成,接下来要做的就是内容的显示,以及内容中一些细节之处的设置。...下拉刷新上拉加载 系统提供了下拉刷新的方法 UIRefreshControl *control = [[UIRefreshControl alloc] init]; [control addTarget...代理方法监听tableView的contentOffset,当开始下拉,contentOffset改变时显示刷新View,当滑动结束并且contentOffset到达一定数值时,修改刷新View显示内容即可...例:当数量超过1万时,会显示1.1万,当小于1万时就显示具体数字,当为0时,就显示顶,或者踩等汉字。

1.4K70
  • 【IOS开发基础系列】下拉刷新专题

    遗憾的时目前只看到下拉刷新功能,上拉刷新还没有,估计在最终版里面苹果会考虑加入上拉刷新功能。         ...1.2.2 b)下拉刷新事件监听         当用户进行下拉刷新操作时,UIRefreshControl会触发一个UIControlEventValueChanged事件,通过监听这个事件,我们就可以进行类似数据请求的操作了...也需要注意的是,我们调用UIRefreshControl的endRefreshing方法,表示刷新结束,让UIRefreshControl更新显示。...,在ViewDidLoad()方法里面添加下面代码(比如 修改刷新和上拉的背景色箭头头像等) self.pullTableView.pullArrowImage = [UIImage imageNamed...3]; }   3 MJRefresh https://github.com/CoderMJLee/MJRefresh 3.1 MJRefresh类结构图 3.2 常见问题 3.2.1 下拉视图默认显示刷新一栏

    20730

    WWDC2016 Session笔记 - iOS 10 UICollectionView新特性

    而且更重要的是,在屏幕外面等待加载的cell是整整一行!这一行的cell都已经加载完数据。这是UICollectionView在用户大幅度滑动时卡顿的根本原因。用专业的术语来说,掉帧。...这里遵循的原则是,何时去显示,何时再去调用willDisplayCell。 当cell要马上就需要显示的时候,我们再调用willDisplayCell方法。...最后,需要注意的是cellForItemAtIndexPath生成的某些cell,可能永远都不会被展示在屏幕上,有这样一种情况,当cell将要展示在屏幕上的时候,用户突然滑动离开了这个界面。...当我们滑动速度很慢的时候,在这种“安静”的时期,Pre-Fetching API会默默的在后台帮我们预加载数据,但是一旦当我们快速滑动,我们需要频繁的刷新,我们不会去执行Pre-Fetching API...因为现在RefreshControl成为了ScrollView的一个属性了。

    2K30

    《iOS Human Interface Guidelines》——Refresh Control

    刷新控件 刷新控件执行一个用户发起的内容刷新——一般是在列表中(如下显示在邮箱列表上方)。...API NOTE 查看UIRefreshControl Class Reference学习更多关于在你的代码中定义一个刷新控件的内容。...一个刷新控件: 看起来很像一个活动指示器 可以显示一个标题 默认是隐藏的,直到用户通过下拉列表的顶部来发起一个刷新动作 使用刷新控件来给用户一个统一的方式告知列表或其他视图立即更新它的内容,而不是等到下一次自动更新...如果你依赖于用户去发起所有的刷新,没有意识到刷新控件的用户就会奇怪为什么你的app始终显示静止的数据。一般来说,你想要给用户立即刷新内容的选项;但不想让用户负责每次更新。...只有添加了内容时提供一个简短的标题。尤其是不要使用标题来描述如何使用刷新控件。 本文翻译自苹果官方开发文档

    39820

    六天完成一个简单iOS App - 第六天

    推荐标签界面 推荐标签的实现有了之前的经验就非常简单了,根据MVC原则创建文件,同样在cell中添加模型属性,根据模型为cell内控件赋值。...消除评论界面heardView中的最热评论 如果是有最热评论的cell,加载到评论界面时需要将最热评论去掉,这里将CLTopic模型的top_cmt最热评论属性置为空,然后在给cell的topic赋值...此时我们返回精华界面,将cell滑出界面在滑回来,这时发现cell内的热门评论也没有了,这是因为我们之前将CLTopic模型的top_cmt最热评论属性置为空了,并且缓存了cell的高度,因此这里需要将...,当scrollView中有一个以上的滚动视图时,将会失效。...有没有显示在keywindow上,如果显示了则修改scrollView的offset.y等于顶端的偏移量即-contentInset.top即可。

    1.3K50

    iOS开发之多表视图滑动切换示例(仿头条客户端)---优化篇

    一、多张表视图的内存问题解决方案     借鉴TableView中Cell的重用机制,我们就把之前的Demo中ScrollView上的TableView进行复用,在我的博客中用的是两个TableView...我个人采取的是改变TableView在ScrollView上的Frame, 并且刷新相应的TableView, 下面的代码是把TableView移动到当前显示页数,并且刷新TableView上的数据。...我是在ScrollView到达相应的页数时进行tableView的移动和数据的刷新。...如有更好的解决方案,还请提出,会及时的进行修改和改正。不希望大家只是“吐槽"和提出一些问题,我期待和大家交流和学习的是一些问题更好的解决方案。 二、头部按钮达到一定数量时,布局的显示方案。   ...也是防新闻头条的那种,按钮多到一定个数时回使用ScrollView进行滚动。在本Demo中是超过6个按钮就可以滑动,而6个以下是平分整个屏幕的宽度的。

    2.1K70

    MJRefresh 源码解析

    在切换状态时,执行相应的操作。实现方法是:setState:。 职能如何实现? 1....&& 手松开 // 手松开 && 状态为可以刷新(MJRefreshStatePulling)时 开始刷新 [self beginRefreshing]; }...也就是针对开始刷新和结束刷新这两个切换点。 从正在刷新状态状态切换为默认状态时(结束刷新),需要记录刷新结束的时间。因为header里面有一个默认的label是用来显示上次刷新的时间的。...在默认格式的设置里,判断了是否是今日,是否是今年的情况。在以后设计显示时间的labe的时候可以借鉴一下。 MJRefreshNormalHeader 有哪些职能?...和lastUpdatedTimeLabel两个控件的宽度并比较大小,将较大的一个作为两个label的‘最宽距离’,再计算center,这样一来就不会重合了。

    1.2K20

    React-native踩坑小记

    tab切换的在最外层,每一个tab页签对应一个listview,同时在listview中还嵌套了一个轮播图swiper 开发过程中遇到了如下几个问题(android环境下): swiper插件无法显示;...swiper插件无法显示: 因为android下,scrollview与listview组件嵌套后会导致scrollview内容无法被渲染,所以无法显示。...Touch* 组件有两个事件是这里我们需要用到的:onPressIn和onPressOut 这两个事件会在手指按下和抬起时触发; 所以我们需要做的就是在这两个事件中触发锁定和解锁外层scrollview...我们这里使用了setNativeProps方法进行锁定scrollview。 setNativeProps不会触发重绘,直接改变React对象的props值。....- 然而当我下载了我司客户端后发现有时也会存在这个问题我就坦然了,233333333) 一个简单的阻止外层scrollview滑动的栗子 所使用插件的链接: 当下最好用的列表插件,可高度自定义的上拉刷新和下拉加载样式

    4.5K80

    MJRefresh 源码阅读

    ,我们就来看一下里面都做了什么 MJRefreshComonent继承自UIView,它就是刷新时展示的自定义View - (instancetype)initWithFrame:(CGRect)frame...UI的函数,子类继承时需要实现它们 弱引用父视图,并设置对父视图的监听(这里有个细节是- (void)willMoveToSuperview:(UIView *)newSuperview函数在view添加和移除时都会调用...,当scrollView滑动时,判断当前scrollView应该处于什么状态,然后再通过- (void)setState:(MJRefreshState)state函数来更新UI,这样一个简单的下拉刷新就实现了...MJRefreshAutoFooter、MJRefreshBackFooter(auto和back两个模式区别是,一个自适应尾部刷新控件位置,一个刷新控件位置始终在底部) auto的核心函数 - (void...、panGesture.state进行监听,在移除view时,需要移除监听 通过上面的监听来修改view的位置、动画等自定的内容(这一步也是自定义刷新的难点,然而像这种对UI的操作,如果不能满足项目的需求

    1.2K20

    实现 iOS 无感知上拉加载更多

    什么是无感知上拉加载更多 什么是无感知,这个这样理解:在网络情况正常的情况下,用户对列表进行连续的上拉时,该列表可以无卡顿不停出现新的数据。...网上的思路(二) 然后在继续的搜索中,我看到了另外一个方案: 很多时候我们上拉刷新需要提前加载新数据,这时候利用 MJRefreshAutoFooter 的属性 triggerAutomaticallyRefreshPercent...就可以实现,该属性 triggerAutomaticallyRefreshPercent 默认值为 1,然后改成 0 的话划到底部就会自动刷新,改成 -1 的话,在快划到底部 44px 的时候就会自动刷新.../// 设置尾部刷新控件,更新为无感知加载更多 let footer = MJRefreshAutoFooter() footer.triggerAutomaticallyRefreshPercent...,我们顺藤摸瓜,看看 super 是什么,会不会有新的发现: ?

    2.3K40

    iOS-QQ音乐播放器的简单实现

    ,使Slider原点随着播放的时间而移动,将定时器添加到主RunLoop中并修改Mode为NSRunLoopCommonModes防止在滑动时定时器失效。...工具类中添加获取上一首歌曲和下一首歌曲的方法,首先拿到当前播放音乐的下标,然后在获取上一首或者下一首歌曲时需要对下标进行判断,拿上一首为例,如果当前歌曲的下标为0,则返回最后一首歌,形成循环播放,如果不为...歌词tableView布局 使用storyboard添加scrollView并自定义scrollView为CLLrcView,使用代码添加tableView,在scrollView的initWithFrame...但是此时的歌词是固定的,并不会根据播放时间即时的显示当先播放的时间。...主页面歌词的即时显示 将主页面歌词的label同样设置为CLLrcLabel型,为CLLrcView添加lrcLabel属性,lrcLabel是CLLrcLabel类型的,在获得当前播放放的歌词之后,

    2.9K131

    【React-Native】React-Native组件样式合集

    当然图片的使用权利在原作者本人,我悉听尊便。...2.其中有部分样式是在默认样式基础上经过修饰的,同时不能确定这是否是RN最新版本的呈现方式,但是万变不离其宗,一般来说形态不会发生很大的变化 FlatList和SectionList 和一般化用途的ScrollView...ActionSheetIOS 从设备底部弹出一个显示一个ActionSheet弹出框选项菜单或分享菜单。 AlertIOS 弹出一个提示对话框,还可以带有输入框。...ActivityIndicator 显示一个圆形的正在加载的符号。 Alert 弹出一个提示框,显示指定的标题和信息。...Modal 一种简单的覆盖全屏的模态视图。 RefreshControl 此组件用在ScrollView及其衍生组件的内部,用于添加下拉刷新的功能。

    2.3K20

    MJRefresh源码剖析与学习

    self.window为空的时候,突然刷新崩溃(从另一个页面返回的时候),所以需要一个状态来过渡。...刷新时跟普通闲置时的偏移差值(刷新时偏移值为118或者142,self.insetTDelta值为header高度-54),恢复后self.scrollView.mj_insetT = 64(或者88)...,再[super setState:state]调用基类,从而赋值基类state 该方法主要要注意状态在普通闲置状态以及刷新状态的scrollView.contentOffset变化...1、在MJRefreshStateHeader上添加了箭头和菊花 2、布局这两种样式View,且在状态切换时更改样式切换 1、圈圈(菊花)和箭头的布局 - (void)placeSubviews...( );如果selector是在运行时才确定的,performSelector时,若先把selector保存起来,等到某事件发生后再调用,相当于在动态绑定之上再使用动态绑定,不过这是编译器不知道要执行的

    1.6K51

    Swift中的内存管理

    reference_cycle.png object1和object2之间形成了循环引用,它们的引用计数始终为1,始终不会被释放,这就造成了内存泄漏。...“标记-整理”策略并不会出现这种问题,因为哪怕两个对象相互引用,但只要它们和“根”对象失去了联系,照样会被标记为死对象,然后在合适的时间被释放。...,它继承自UIRefreshControl,可以在UITableViewController中直接使用,如下: class HouseTableCtrl: UITableViewController {...,旋转的菊花就会出现旋转1秒,同时执行getPageData方法,刷新页面数据。...,弱引用是不算在HouseTableCtrl对象的引用计数中的,也就是说当没有其他引用指向HouseTableCtrl对象时,HouseTableCtrl对象能被正常释放,一旦HouseTableCtrl

    1.6K50

    iOS开发实战-时光记账Demo 本地数据库版效果分析Demo地址

    简单的coreData完全可以胜任 说白了就两个页面 主界面 和 记账界面 这是完成时的文件结构 ?...类型表 4.页面编写 增加账单页面 由于主页只是一个展示的时光轴界面,UIScrollView加几个按钮就能完成,需要读取数据库内容,所以我们先把内页-增加账单 完成。...在cell中的位置 CGRect imgInCellRect = cell.imageView.frame; CGFloat x = cellRect.origin.x + imgInCellRect.origin.x...表中 筛选 为该日期的tally 并逆序排列 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"dateship.date...; [self.navigationController pushViewController:addVC animated:YES]; } @end 5.结束 由于coredata增删改查时的代码量实在是太大

    2.4K20
    领券