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

iOS开发——UITableView勾选效果

如今的APP开发中,UITableView是最常用的控件之一,而UITableView中有个很常见的效果就是勾选效果,这个效果是由UITableViewCell中的accessoryType属性来决定的...accessoryType中的变量是一个枚举值UITableViewCellAccessoryType,让我们来看一下其中包含的东西。...记录下之前选择的单元格,并且实时更新。 - 其次,解决单元格的复用问题。不然当单元格复用时,会显示多个勾选的BUG。看了一下网上分享的很多的方法,都没有解决单元格复用的问题,或者问的很笼统。...首先我们先声明一个变量,用来存储被选择的行数的标志 @property (nonatomic, strong) NSIndexPath *selectPath; //存放被点击的哪一行的标志 之后我们实现...cell.accessoryType = UITableViewCellAccessoryNone; } cell.roomType = _dataSource[indexPath.row]; 至此,单选效果就已经完成,并且不会有单元格复用的问题

1.7K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    史上最全的iOS之访问自定义cell的textField.text的N种方法

    以下我将要分四个方法分别介绍并逐一介绍他们的优缺点,大家可以在开发中根据实际情况有选择的采用不同的方法。...因为之前屏幕上出现的cell离开屏幕被缓存起来时候,cell上的内容并没有清空,当cell被重用时,系统并不会给我们把cell上之前配置的内容清空掉,所以我们在else中对contentTextField...因为之前屏幕上出现的cell离开屏幕被缓存起来时候,cell上的内容并没有清空,当cell被重用时,系统并不会给我们把cell上之前配置的内容清空掉,所以我们在else中对contentTextField...因为之前屏幕上出现的cell离开屏幕被缓存起来时候,cell上的内容并没有清空,当cell被重用时,系统并不会给我们把cell上之前配置的内容清空掉,所以我们在else中对contentTextField...因为之前屏幕上出现的cell离开屏幕被缓存起来时候,cell上的内容并没有清空,当cell被重用时,系统并不会给我们把cell上之前配置的内容清空掉,所以我们在else中对contentTextField

    6.8K40

    你可能需要为你的 APP 适配 iOS 11

    本文介绍iOS11中在UI方面做了哪些更新,有些更新可以为用户提供更加完美的体验,但也有的可能会给目前的APP带来异常bug 前言 前几天发现在做的APP在 iOS11 系统上动画有异常,在其他系统的设备上都是正常的...本文内容包括:集成了搜索的大标题栏、横向选项卡栏、Margins 和 Insets以及 UIScrollView和UITableView 的更新和功能更强大的滑动操作。 一....例子:当你设置了trailing = 30;当在一个right to left 语言下trailing的值会被设置在view的左边,可以通过layout margins的left属性读出该值。...UIScrollView and UITableView的新特性 Scroll Views 如果有一些文本位于UI滚动视图的内部,并包含在导航控制器中,现在一般navigationContollers会传入一个...Self-Sizing 这个应该是UITableView最大的改变。

    1.7K60

    【IOS开发基础系列】Table View开发专题

    这种格式虽然可以设置detailTextLabel,但是不会显示该标签。     ...tableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath       需要声明一个全局BOOL变量isOpen,记录当前cell的状态,声明一个...NSInterger类型selectedIndex,记录选择的cell的row。       ...这个例子中,layer并不会显著影响性能,但如果layer透明,或者有圆角、变形等效果,就会影响到绘制速度了。解决办法可参见后面的预渲染图像。 2.4.1.4 不要做多余的绘制工作。      ...常见的现象就是在更新数据时,整个界面卡住不动,完全不响应用户请求。出现这种现象的原因就是主线程执行了耗时很长的函数或方法,在其执行完毕前,无法绘制屏幕和响应用户请求。

    38120

    iOS开发笔记(十一)— UITableView、ARC、xcconfig、Push

    前言 分享iOS开发中遇到的问题,和相关的一些思考,本次内容包括:UITableView滚动问题、ARC、xcconfig、Push证书。...UITableView还有类似的问题,如果列表项过多时,scrollToRowAtIndexPath有时并不准确,比如有1000行时滚动到第500行,此时可能会出现滚到501或者499行的情况。...究其原因,是因为UITableView不会调用1~499行所有的heightFor和cellFor方法,所以无法准确计算出来位置。...如果仅仅是retain/release的管理,非常容易理解,但是插入的代码如何实现weak、strong这些运行时特性?...3、在build setting选中某个配置项,cmd+c复制然后到xcconfig的文件中,cmd+v就可以复制配置项到xcconfig中。

    1.8K20

    iOS开发之表视图爱上CoreData

    a.在TableViewController我们需要声明如下两个属性,一个用于获取上下文,一个用于存储返回结果 1 2 3 4 //声明通过CoreData读取数据要用到的变量 @property (strong...更新数据通过点击相应的cell,把cell上的数据传到UpdateView的页面上,然后进行更新即可。     ...3.在之前保存的ViewController中如果Person为空,说明是执行的添加记录的方法我们就生成一个新的person, 如果Person不为空则不新建Person对象,直接更新完保存。     ...FetchedResultsController, 代码如下: //当在searchView中点击取消按钮时我们重新刷新一下通讯录 -(void)searchBarCancelButtonClicked...所以加载cell时要进行相应的选择,search中的cell是我们自定义的cell, 选择代码如下: 1 //根据不同的tableView来设置不同的cell模板 2 if ([tableView

    2.2K80

    iOS 9 Storyboard 教程(二下)

    当用户点击Cancel按钮的时候,这个控制器将会关闭并且不管你输了什么数据都不会保存.这个部分用unwind segue已经起作用了...., game: "Chess", rating: 1) } } prepareForSegue(_:sender:)使用默认的游戏和评级变量,创建了一个新的Player实例.它只是为带有SavePlayerDetail...运行app检查它到目前为止的功能.创建一个新的玩家,选择玩家的游戏然后选择一个游戏. ? 在Add Player控制器里游戏并没有更新!...现在当你运行app然后选择游戏的时候,它就会更新与动员的游戏了! ?...你现在有一个功能选择游戏的控制器了! ? Paste_Image.png 本教程的所有源代码: 请到这里下载:下载链接 翻译过程中,有个别地方不是十分准确,希望大家批评指正有好的建议也可以回复

    2.2K10

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

    这还用问,当然是用UITableView+自定义的UITableViewCell。 UITableView是可以滑动的,为了不让用户在滑动中感到有卡顿,该如何优化?...所以,我们完全可以只创建一种Cell,虽然这样一个Cell的“体积”可能会很大,但是介于Cell的数量不会很多,所以完全可以接受。...基于Cell的重用,真正运行时铺满屏幕所需的Cell数量大致是固定的,设为N个。...所以如果如果只有一种Cell,那就是只有N个Cell的实例;但是如果有M种Cell,那么运行时最多可能会是“M x N = MN”个Cell的实例,虽然可能并不会占用太多内存,但是能少点不是更好吗。...在UITableView的Delegate、DataSource方法中,减少任何不必要的操作 http://tutuge.me/2015/02/19/提升UITableView性能-复杂页面的优化/

    1K50

    iOS面试题梳理(一)

    动态——必须到运行时(run time)才会做的一些事情。 1.动态类型:即运行时再决定对象的类型。这种动态特性在日常的应用中非常常见,简单来说,就是id类型。...,如果程序中把Foundation中的变量强制换成Core Foundation中的变量需要交换管理权; 10.在非ARC工程中采用ARC去编译某些类:-fobjc-arc。...如果一个类采用了一个协议,那么它必须实现协议中必须需要实现的方法,在协议中的方法默认是必须实现(@required),添加关键字@optional,表明一旦采用该协议,这些“可选”的方法是可以选择不实现的...:(NSInteger)section 3.原本属于NSIndexPath的方法,但因为这个方法经常使用的表的时候调用、跟表的关系特别密切,因此把这个方法一类别的形式、声明在UITableView.h中...5.类别不能声明变量,类别不可以直接添加属性。property描述setter方法,就不会报错。

    1.1K60

    SwiftUI 与 Core Data —— 数据获取

    尽管在实践中,如果能在确保不访问托管对象的非线程安全属性的前提下,在非创建托管对象的线程中持有托管对象并不会出现崩溃的情况,但出于谨慎的考虑,我最终还是放弃了这种方式。...为了提高 UITableView( UICollectionView )的更新效率,NSFetchedResultsController 会将数据的变化分解成特定的动作( NSFetchRequestResultType...image-20221203185621897允许在构造方法中不提供 NSFetchRequest当在视图中使用 @FetchRequest 时,我们必须在声明 FetchRequest 变量时设置 NSFetchRequest...ID 顺序或数量没有发生变化时,即使数据的属性值发生变化,MockableFetchRequest 也不会更新数据集。...( 在 @State 中持有引用 ),便可以达成如下目的:1、让数据的生命周期与视图生存期一致;2、数据可更改;3、更改数据不会引发视图更新。

    4.7K30

    窥探Swift之协议(Protocol)和委托代理(Delegate)回调的使用

    一.从UITableView中来窥探协议的委托代理回调     UITableView这个高级控件在iOS开发中的出镜率是比较高的,今天的重点不是介绍如何使用UITableView, 而是让通过UITableView...这个声明为weak的delegate成员变量则是必须要实现EditViewControllerDelegate协议的委托代理者,使用weak修饰为了避免强引用循环。...deinit是析构函数,用来观察是否引起强引用循环,因为我们是使用的weak, 所以不会引起强引用循环,该deinit方法当返回时,是会被释放掉的。...8 9 //更新数据源中相应的数据 10 self.dataSource!...好今天的博客内容也挺多的了,就到此为止,剩下的东西,会在以后的博客中继续更新。

    3.6K80

    在iOS中怎样创建可展开的Table View?(下)

    接上篇:在iOS中怎样创建可展开的Table View?...开始我们需要知道点击行的索引(记住,不是实际的indexPath.row)而是可见cell的行索引,所以我们将会开始在下面的tableView代理方法里给它分配一个局部变量: func tableView...真正的原因是因为我选择开始处理cell的类型,我继续在tableView的代理方法里修改,在里面,我将添加一个else来处理没有展开cell的情况,然后我们将检查点击cell的标识符的值.如果标识符等于...cell.delegate = self return cell } 好极了,现在我们可以开始实现得里函数了.我们会开始实现在日期选择器里显示选中的日期到顶级cell上: func dateWasSelected...,但是也是可以存在真实的app中的.在它代表一个完整组件之前,仍然有很多事情需要做.

    1.5K30
    领券