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

iOS 13 UISegmentedControl inside UITableView缓存以前的选择

在iOS 13中,如果在UITableView中使用UISegmentedControl,并且希望保留之前的选择状态,可以通过缓存来实现。

缓存是一种将数据存储在内存或磁盘中,以便在需要时快速访问的技术。对于UISegmentedControl的选择状态,可以将其存储在一个变量中,然后在UITableView的数据源方法中使用该变量来设置初始选择状态。

以下是一个示例代码:

代码语言:txt
复制
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
    var selectedSegmentIndex: Int = 0 // 用于缓存选择状态的变量
    
    // UITableView的数据源方法
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 1
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
        
        let segmentedControl = UISegmentedControl(items: ["Option 1", "Option 2", "Option 3"])
        segmentedControl.selectedSegmentIndex = selectedSegmentIndex // 设置初始选择状态
        
        segmentedControl.addTarget(self, action: #selector(segmentedControlValueChanged(_:)), for: .valueChanged)
        
        cell.contentView.addSubview(segmentedControl)
        
        return cell
    }
    
    // UISegmentedControl的值改变事件
    @objc func segmentedControlValueChanged(_ sender: UISegmentedControl) {
        selectedSegmentIndex = sender.selectedSegmentIndex // 更新选择状态
    }
}

在上述代码中,我们使用了一个变量selectedSegmentIndex来缓存选择状态。在UITableView的cellForRowAt方法中,我们创建了一个UISegmentedControl,并将其初始选择状态设置为selectedSegmentIndex的值。当用户改变选择时,我们更新selectedSegmentIndex的值。

这样,当UITableView滚动时,由于重用机制,之前的选择状态会被正确地恢复。

对于腾讯云相关产品和产品介绍链接地址,可以根据具体需求选择适合的云服务,例如:

  • 云服务器(CVM):提供可扩展的计算能力,适用于各种应用场景。产品介绍链接
  • 云数据库MySQL版(CDB):提供高性能、可扩展的关系型数据库服务。产品介绍链接
  • 云存储(COS):提供安全、可靠的对象存储服务,适用于存储和处理各种类型的数据。产品介绍链接
  • 人工智能平台(AI Lab):提供丰富的人工智能算法和模型,帮助开发者构建智能应用。产品介绍链接
  • 物联网套件(IoT Hub):提供全面的物联网解决方案,帮助连接和管理物联网设备。产品介绍链接
  • 区块链服务(BCS):提供简单易用的区块链开发和部署服务,帮助构建可信赖的区块链应用。产品介绍链接

请注意,以上仅为示例,具体选择腾讯云的产品应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS UI捉迷藏(如何获取用户点击行为控件title)

乍一听,熟悉Android同学会说, ViewonClick事件监听就好了,然而,iOS与Android并不相同,一方面,iOS没有统一获取title方式,另一方面,不同UI控件title位置不尽相同...至此,我们可以获取到uiview,这里就需要判断目标是uiview哪个子类 没错,iOS没有统一title获取方式,所以要对每种控件单独判断。。。...] text]; 下面加大难度,获取UITableViewcell内容 二阶获取控件:UITableViewcell 通过上面的方法,当用户点击了红色字体内容后,响应view是UITableViewCellContentView...层级关系如下: UISegmentedControl里面有好几个UISegment。。。。。。...查官方文档 找到了一个,但是iOS14才开放方法 可以升级后好好试一下,如果大家有好方法获取,请留言。

1.3K10

函数响应式编程及ReactiveObjC学习笔记 (四)

, 一个选择完毕代理, 我们用来试试看 // 创建一个RACDelegateProxy RACDelegateProxy *imgPickerDelegateProxy = [[RACDelegateProxy...是imgPickerController本身, 转义后直接拿来dismiss即可 选择图片后x是一个数组, 第一个是imgPickerComtroller, 第二个是选择image UISegmentedControl...rac_newSelectedSegmentIndexChannelWithNilValue:(nullable NSNumber *)nilValue; @end NS_ASSUME_NONNULL_END 可以把分段选择选择结果直接绑定给其他空间..., 或者拿去做别的 实例代码如下: // 创建一个UISegementController UISegmentedControl *segmentController = [[UISegmentedControl...covariant ValueType>; @class RACUnit; NS_ASSUME_NONNULL_BEGIN // This category is only applicable to iOS

87121

iOS 知识小集(Status Bar变换)

背景 iOS 中经常会有需要在某个界面改变状态栏颜色或者某个界面隐藏状态栏需求。而改变状态栏颜色和控制状态栏显示和隐藏API,在iOS 不同版本中也发生了很多变化。...iOS 7以前iOS 7之前,状态栏是不占视图位置。每个控制器中根view都是从屏幕Y轴20px处开始显示。...iOS 7以前状态栏设置 从API来看,那时候也是支持在代码里修改状态栏样式以及显示和隐藏。只是因为状态栏对整个APP影响不大,所以一般在plist里设置好后,用不着再去修改了。 ?...API iOS 7 ~iOS 9 从iOS 7开始系统风格大变样,图标扁平了,状态栏也不在闹独立了。因为状态栏会受到导航栏或者View背景色影响,所以状态栏风格也需要实时调整了。...效果gif iOS 9 之后 如上面第二张图所示,UIApplication控制状态栏方法,在iOS 9之后被弃用了。 所以iOS 9之后尽量使用重写ViewController方法方式吧。

1.2K21

RunLoop总结:RunLoop应用场景(三)滚动视图流畅性优化

因为跟UITableView、UICollectionView等滑动优化有关,就顺便总结一下会影响UITableView、UICollectionView等视图滑动流畅因素。...关于iOSRunLoop资料非常少,以下资料都是非常好。 CF框架源码(这是一份很重要源码,可以看到CF框架每一次迭代,我们可以下载最新版本来分析,或与以下文章对比学习。...只会计算一次,后面再次滑到这个Cell这里,都会读取缓存高度,也即高度计算代理方法不会再执行。...但是到了iOS8,不会再缓存Cell高度了,也就是说每次滑到某个Cell,代理方法都会执行一次,重新计算这个Cell高度(iOS 9以后没测试过)。...关于这一点,我以前做法是在Cell中定义一个public方法,用来计算Cell高度,然后计算完高度后,将高度存储在Cell对应Model中(Model里定义一个属性来存高度),然后在渲染Cell时,

2.1K41

提升UITableView性能-复杂页面的优化

之前项目,青桔音乐iOS客户端里面的首页就是一个类似微信朋友圈“动态”页面,大致如下: 青桔动态页面 如果是你,你会怎么实现这个页面呢?...这还用问,当然是用UITableView+自定义UITableViewCell。 UITableView是可以滑动,为了不让用户在滑动中感到有卡顿,该如何优化?...提前计算并缓存每个Cell高度 开发过Android,用过AndroidListView以后,对UITableView需要提前计算Cell高度很不适应。=。...= 首先要确定是,在iOS中,系统会先调用“tableView:heightForRowAtIndexPath:”获取每个Cell即将显示高度,从而确定整个UITableView布局。...=(最好放在ViewModel中,就是MVVM模式),我们Entity可能就是下面的样子: 1 2 3 4 5 6 7 8 9 10 11 12 13 @interface

98350

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

前几天发布了一篇iOS开发之多表视图滑动切换示例(仿"头条"客户端)博客,之所以写这篇博客,是因为一位iOS初学者提了一个问题,简单写了个demo做了个示范,让其在基础上做扩展和改进。...被CocoaChina中iOS模块所收录实在出乎我意料,链接地址(http://www.cocoachina.com/ios/20150706/12370.html),在CocoaChina上看了下面的评论...首先内存问题是必须考虑,不能把这么多TabalView实例化后添加到ScrollView上,只要是做过iOS小伙伴这个问题应该不难看出。...再一个是头部按钮多了以后会挤在一起,还有如果添加上网络请求的话,没做本地缓存,等一系列问题。   在今天博客中要做两个优化。第一:多个TableView内存问题。第二:头部多个按钮显示问题。...基础上做简单修改,Demo还在完善中,后期会加上网络请求,本地缓存等。

2K70

SDWebImage: 带你制作精美的相册

这个类库提供一个UIImageView类别,支持加载来自网络远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。...,在类头文件(.h)中导入头文件: 在上面的效果图中,大家肯定一眼就看出来这是一个UITableView;没错,对于展示类页面来讲,UITableView就是最佳选择,如果你接触iOS开发到一定阶段...UITableView控件去加载它, 这里UITableView功能比较简单,就不多做介绍了。...总结: SDWebImage是一个功能很强大图片加载库,我上面所演示只是最基础下载与缓存功能,适用于这种相册功能;如果你App功能对性能优化或者内存管理要求比较高,它还有独立异步图像下载,异步图像缓存可供使用...;总之,SDWebImage出现对我们开发者来说,是一个不错选择

76820

老司机 iOS 周报 #77 | 2019-07-29

Language APIs in iOS 13 @AidenRao:去年,Apple 推出了 NaturalLanguage 框架,用于分析自然语言文本并推导其特定于语言元数据。...iOS 13 上此框架更新了新功能 内置情感分析,对文本进行 -1.0 到 1.0 打分,确定一组文本是积极还是负面。 单词标记,单词应用标记系统,可用于模糊搜索,相似物品推荐系统。...Managing background tasks with the new Task Scheduler in iOS 13 @zvving:iOS 13 中苹果引入 BackgroundTasks...API 仅限 iOS 13,如需支持之前系统的话就用不了了,DiffableDataSources 基于 DifferenceKit 实现,提供了与官方近似的 API。...M80TableViewComponent @anotheren:来自网易 UITableView 组件化解决方案, 不用再和 IndexPath 及数组越界打交道 权责分离,和冗长 UITableView

91630

小伙开发高仿抖音项目 就问你服不?

当我们在感慨技术学不完时候,也不得不说,牛X的人真多。今天分享给大家两个高仿抖音开源项目。两个项目一个是安卓版,另一个是iOS版。 2 iOS版 该项目共分为三个部分。...第一部分,为抖音个人主页实现,包含NSOperationQueue多队列解析webp动图、网络资源二级缓存框架搭建。...第二部分,围绕AVPlayerLayer展开,涉及网络视频边播放边下载、UITableView控制多个视频源播放。...而且,iOS版项目附带详细开发文档: 3 效果展示 GitHub:https://github.com/sshiqiao/douyin-ios-objectc 文档:https://sshiqiao.github.io...:https://github.com/18380438200/Tiktok 两个项目均开源,感兴趣小伙伴,可以前去围观了!

59840

iOS11、iPhone X、Xcode9 适配

一、单纯升级iOS11后造成变化 1....升级后,发现某个拥有tableView界面错乱,组间距和contentInset错乱,因为iOS11中 UIViewController automaticallyAdjustsScrollViewInsets...heightForFooterInSection:(NSInteger)section; // 这样原理是因为之前只是实现了高度代理方法,却没有实现View代理方法,iOS10及以前这么写是没问题...,iOS11开启了行高估算机制引起bug,因此有以下几种解决方法: // 解决方法一:添加实现View代理方法,只有实现下面两个方法,方法 (CGFloat)tableView: heightForFooterInSection...11适配之跳转App Store评论 在iOS 11之前,为了让用户直接跳到App Store评论页面,你代码大概是这样写: -(void)goToAppStore { NSString

45220
领券