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

当我在TableView中滚动时,UItextField数据消失-- Swift

当在TableView中滚动时,UITextField数据消失的问题通常是由于TableView的重用机制导致的。当滚动TableView时,屏幕上的单元格会被重用,而不是每个单元格都创建一个新的实例。这意味着当一个包含UITextField的单元格滚出屏幕时,它的UITextField会被重用到新的单元格上,从而导致数据消失。

为了解决这个问题,可以采取以下几种方法:

  1. 保存数据状态:在UITableViewDataSource的cellForRowAt方法中,为每个单元格设置UITextField的值时,同时将其值保存到一个数据源中,例如一个数组或字典。在UITextField的委托方法中,更新数据源中对应的值。这样,在滚动时,可以通过数据源来恢复UITextField的值。
  2. 使用标识符重用:在UITableViewDataSource的cellForRowAt方法中,为每个单元格设置UITextField的值时,同时为UITextField设置一个唯一的标识符。在UITextField的委托方法中,根据标识符来更新对应的值。这样,在滚动时,可以根据标识符来恢复UITextField的值。
  3. 使用自定义单元格:创建一个自定义的UITableViewCell子类,其中包含一个UITextField属性。在自定义单元格中,重写prepareForReuse方法,将UITextField的值重置为空。在UITableViewDataSource的cellForRowAt方法中,为每个单元格设置UITextField的值时,使用自定义单元格,并将UITextField的值设置为对应的数据源值。

推荐的腾讯云相关产品:腾讯云移动直播(https://cloud.tencent.com/product/mlvb)可以用于实时音视频直播场景,提供了丰富的功能和工具,可用于构建高质量的移动直播应用。

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

相关·内容

自学Swift之路(二)UITableView自定义和实际利用

6EDD4AC9-47E3-401F-91A4-2DA836439787.png Demo开始之前,我们想想应该会使用到屏幕宽高等一些常用的值,OC,咱们可以使用PCH然后宏定义,然而在Swift...=UITextField() var userTextF : UITextField?...ImageView和一个Label,虽然数据是死的,但是Swift,另外一个类是可以直接访问另一个类的变量的(如果没做任何保护的话),所以我们配置cell的时候是可以直接赋值的,这里就不弄了,然后我们看创建表视图那一块...学了这么几天,我发现Swift还是比较容易入手的,下篇文章我会用一个小的项目,本人是做室内地图SDK的,这次的小项目是仿我OC写的SDK Demo,使用Swift和OC混编,集成百度地图SDK和自己的室内...在下篇文章中会讲讲,Swift项目已上github:https://github.com/qingmomo/Swift-die OC版的demo我们官网:http://www.innsmap.com

2.3K90
  • 自学Swift之路(一)UI入手之基本控件

    77BF0FB21C66.png 创建好工程后,我们会进入这个界面 C18EA84A-89AF-4920-8824-1CF1F2CA8B8C.png 好了开始编程:写一个创建子视图的方法,里面创建一些基本的UI控件,然后viewDidLoad...// 2.UITextField let myTextF = UITextField(frame: CGRectMake(50,300,100,30))...myImgView.frame = CGRectMake(200, 200, 100, 100) } 写到这里,我想有OC经验的开发者已经发现,两种语言控件的属性是一样的,只是语法有些不一样而已,多写几个就会发现Swift...中有两个数据源的方法是必须实现的:咱们可以command+左键点进去UITableViewDataSource看看,是这样的: public protocol UITableViewDataSource...本人也是正在学习,文章内容如有错误,还请指正,有需要优化的地方,也请帮忙指出,帮助大家共同进步

    2.9K110

    ios tableview 上加 textfiled

    但是 后来开发遇到一个问题  :    因为使用的是UItableviewContrller   当时我们的设计就说 可不可以将下边的按钮审核 让他的位置固定  ,不随tableview滚动滚动...,但是我也是尝试了各种的办法,但是还是没有办法实现,所以最后ui妥协了 就让他随位置移动吧 ,因为tableviewcontroller 虽然帮助我们实现了很多的功能,但是 界面是就比较局限了,远远比不上...3: 最近又要做  类似于  图2 的  图,我终于 还是 不能容忍自己 使用uitableviewcontroller了  所以我还是 试了很多 就是 如图三实现的效果: 当键盘出来的时候 不会挡住uitextfield...发上代码: #pragma mark - 改变tableview的位置(当将要编辑的时候) -(BOOL)textFieldShouldBeginEditing:(UITextField *)textField...indexPath = [NSIndexPath indexPathForRow:textField.tag inSection:0]; //将要编辑的textfield 所在的cell 使其滚动到中间的位置

    96850

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

    所以需要一通用的动态的方法。那么我们怎么tableView准确的拿到每一行celltextField的text呢?...2.cellForRowAtIndexPath:数据源方法给控制器的每个UITextField类型属性赋值为cell.textField。.../ @property(nonatomic, weak) UITextField *addressTextField; @end 数据源方法cellForRowAtIndexPath:给控制器的UITextField...因为项目开发,受项目复杂度影响,难免会出现不同的控制器界面都会有UITextField类型(或者其子类型)的对象而没有释放,当textField开始编辑、内容发生改变、结束编辑,都会发送相同的通知。...另外,值得提醒的是,如果我们不能保证控制器被pop肯定会调用dealloc方法,那么建议控制器的viewWillDisAppear:方法移除通知,而非dealloc方法移除。

    6.8K40

    iOS学习——tableview带编辑功能的cell键盘弹出遮挡和收起问题解决

    最近在项目中经常用到UITableView的cell带有UITextField或UITextView的情况,然后在这种场景下,当我们点击屏幕较下方的cell进行编辑,这时候键盘弹出来会出现遮挡待输入的...言归正传,下面就说回到我们要解决的问题,UITableView的cell,系统自带的UITableViewCell的格式没有自带UITextField或UITextView这种可以编辑的区域的,而这种类型的...下面的流程就是UITextField或UITextView整个编辑过程的详细流程步骤: 成为第一响应者之前,文本框调用其代理的textFieldShouldBeginEditing:  方法来允许或阻止其第一响应者...cell的应用,首先,我们再主控制器定义几个属性来保存我们键盘弹出tableview的contentOffset以及当前编辑cell的frame,然后应用自定义cell设定我们的两个回调block...的contentOffset,方便我们键盘收起tableview进行还原程原先的位置 @property (assign, nonatomic) CGPoint lastContentOffset

    3.9K80

    使用UITableView 简化登录注册界面

    code>发现没有code demo,有些撩人啊,本着学习的态度,根据该文章的方法,写了个示例工程loginTableDemo,希望能对看了该文章的人在实践上有所帮助,同时欢迎大家指出代码的不足...cell,简化枚举逻辑,但增加了cell种类,大家按喜欢的来就好了 与直接使用UIView + UITextField + UIButton的界面对比...,使用tableView的方案增加了数据传递的成本,cell的按钮点击事件和文字输入事件与controller...之间比较松散,我的示例,使用了protocol的方式,有兴趣的可以换成闭包方式看看,也许可以更精简一些....tableView切换状态,要先删除后添加,同时要记得修改数据源的对应数据 项目使用swift实现,代码也简单,<code

    1.1K20

    小问题记录

    = NSOrderedDescending) if (SYSTEM_VERSION_LESS_THAN(@"8.0")) { ... } 文件保存数据库的问题 iOS 往数据库里写保存文件路径的时候...,不要写全路径,因为软件更新或者重新安装沙盒路径会变 更新的流程是这样的:更新,先在新的路径里安装新程序,然后把旧程序文件夹里的配置文件之类的文件拷贝到新的路径里去,然后删除旧程序 所以,如果数据库里保存的是绝对路径...设置frame且尺寸参数有不同的情况下调用 滑动UIScrollView,scrollView和其父view会调用 旋转屏幕会在viewController的根view调用 重新改变view的大小,其父...//[super ...]; } 判断UITableViewCell是否可见 reference -(BOOL)isRowZeroVisible { NSArray *indexes = [tableView...里经常用 #pragma mark - xxxx 来分隔代码 Swift里用的是 // MARK: - xxx

    3.4K21

    RxSwift 实战操作【注册登录】

    首先我们Service文件创建一个ValidationService类,最好不要继承NSObject,Swift推荐尽量使用原生类。...基于此,我们创建一个Protocol.swift文件,创建一个enum用于表示我们处理结果,所以,我们Protocol.swift文件添加如下代码: enum Result { case ok...UI操作 -> ViewModel -> 改变数据 数据改变 -> ViewModel -> UI刷新 回到我们ServiceValidationService类,写一个检测username的方法...列表界面 由于篇幅原因,列表界面就不做很复杂了,简单地弄了些假数据。既然做到这里了,怎么也得把它做完吧。 let's go,storyboard添加一个控制器,布局如下图: ?...注意:因为这里是根据搜索框的内容去搜索数据,因此SearchService需要添加一个函数,它看起来应该是这样子的: func getContacts(withName name: String)

    4.9K60

    Ios常用第三方框架(二)

    XYPieChart -XYPieChart:饼状图, 饼图, 数据统计, 数据可视化,可以图形上标注数据。效果十分漂亮,而且没有用到一张图片。...HBHorizontalTableView - swiftTableView 横向滚动小示例(仿照 AppStore 应用展示)。...HorizontalScrollCell - HorizontalScrollCell是一款使用方便的水平方向可滚动的单元格,适用于UICollectionView实现水片方向滚动视图。 。...LxTabBarController - 改变了原生tabbar切换tab的生硬效果,并加入滑动切换手势(有和界面上的其它手势发生冲突的风险,可根据具体项目予以关闭),swift版本。...MGSwipeTableCell - 另一个常见于很多应用的UI组件,苹果应该考虑标准的iOS SDK中加入一些类似的内容。Swipeable表格cell是这个pod的最佳描述,也是最好的。

    7.7K60

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

    说到协议,Objective-C也是有协议的,并且Swift的协议和Objc的协议使用起来也是大同小异的,Java等现代面向对象编程语言中有接口(Interface)的概念,其实和Swift或者...上面的Cell中就是一个ImageView和一个Label, 布局灰常简单啦,接下来就简单介绍一下Swift是如何实现(说白了,和Objc实现起来大同小异)。...上显示的数据了,正常开放这些数据往往来源于网络请求,而在本篇博客中就模拟数据源,来为我们的TableView提供显示的数据。...这个协议可以定义EditViewController.swift源文件协议定义之前,先对什么是协议简单的提上一嘴。...上面的场景iOS开发中极为常见,使用场景也是比较广泛的。所以协议无论Swift还是iOS开发中都是极为重要的概念之一。

    3.5K80

    Ios常用第三方动画框架(三)

    组件使用方便、自然(只需设置集合视图数据源的标准方式即可)。 KYShareMenu - 带弹性动画的分享菜单。...HYBLoopScrollView - HYBLoopScrollView实现自动循环滚动,一般用于展示广告页。微信贴纸宣传处就使用了轮播。...用于简化实现各种类型的旋转木马(分页滚动视图),无限轮播 ,iOS开发之多图片无缝滚动组件封装与使用。 KIPageView - 无限循环PageView,横向TableView,无限轮播。...KYAnimatedPageControl - 除了滚动视图PageControl会以动画的形式一起移动,点击目标页还可快速定位。支持两种样式:粘性小球和旋转方块。...ZLSwipeableViewSwift -ZLSwipeableView - ZLSwipeableViewSwiftTinder and Potluck的动画效果实现思路(连续卡片翻页效果),最贴心的是作者提供了

    9.2K30

    编码篇-iOS开发的奇巧小伎

    1.TableView不显示没内容的Cell 2.百分号的转换 3.禁止手机睡眠 4.跳进app权限设置 5.collectionView的内容小于其宽高的时候是不能滚动的,设置可以滚动: 6.设置navigationBar...33、获取手机RAM容量 34、UITextView显示html文本 35、选中textField或者textView所有文本(我这里以textView为例) 36、隐藏UITextView/UITextField...光标 37、当UITextView/UITextField没有文字,禁用回车键 38、通知监听APP生命周期 39、获取collectionViewCell屏幕的frame 40、UITextField...文字周围增加边距 41、比较两个UIImage是否相等** 42、代码方式调整屏幕亮度 43、float数据取整四舍五入 44、让正在滑动的scrollView停止滚动(不是禁止,而是暂时停止滚动)...光标 textField.tintColor = [UIColor clearColor]; 37、当UITextView/UITextField没有文字,禁用回车键 textField.enablesReturnKeyAutomatically

    5.4K10

    Ios常用第三方框架(一)

    ReplaceAnimation.swift - 基于 @ZeeYoung欧阳哲 同学的创意下拉刷新动画实现。值得称赞还有额外增加了“取消及滚动”效果支持。...SnapKit - 就是“snap”, --swift 喜欢自动布局吗?当然喜欢!至少storyboard创建时会喜欢。...代码纯手工创建约束灰常痛苦,但幸运的是我们有了SnapKit,board中用上它,你可以简单直观地编写约束了。...第二个Demo模拟了一个经典的FlowLayout,任意一个元素隐藏,底下的元素需要自动“顶”上来,配合这个扩展,你可以IB里连一连,选一选,不用一行代码就能搞定。...支持Cell、Label和Tableview高度自适应,致力于做最简单易用的AutoLayout库。 Neon.swift - 功能强大的 UI 布局神器。

    5.4K31

    ios入门之界面基础

    学习移动app开发,我们常常从讲解基本的控件开始,如UILabel、UISearchBar、UIButton、UITextField等等。...如: self.title =@"登录"; Table View Table views是用来显示滚动视图的控件,滚动视图是iOS Apps中最常见的用户界面。...滚动视图中的每一行叫做cell,cell是用了展示table view每行的内容。table view可以有很多个cell,多个cell组成section(组)。...iPhone的设置界面,就是用不同的section把界面分开,像通知中心,控制中心,个人隐私,每个table view都有header和footer,header是cell上面,footercell...Delegation 很多的OA软件,往往都有定时提醒这么一个功能。App内部发生某个事件,就会发出提醒,为某个事件订阅或者接收提醒的过程叫做delegation(委托)。

    1.7K80

    【iOS】仿知乎日报,RxSwift-Part1-首页搭建

    首页导航栏效果演示.gif 刚开始导航栏的颜色是透明的,随着tableView向上滚动,导航栏主键显示颜色。...那么只要显示第一张或最后一张,马上修改collectView的contentOffset即可瞒天过海,具体实现参考项目代码吧~ 2.2、向下拖拽,图片会放大 其实也是监听tableView滚动,改变轮播图中图片的高度即可...的willDisplay方法,监听section的变化,刷新条件是:当滚动到最后一个section的第一个元素,加载更多数据 func tableView(_ tableView: UITableView...那么针对上拉刷新,我是这样封装的,我的MPApiService服务层,定义了如下方法: func loadMoreHomeNewsList(date: String) -> Observable<MPStoryListModel...,滚动到最新日期,导航栏又显示回今日要闻。

    2.3K10
    领券