iOS中自定义输入文本框的cell(UITextFieldCell)的使用技巧

本文介绍了如何在iOS中自定义带有输入文本框的UITableViewCell,通过给UITextField添加IndexPath属性,实现在表格中方便地获取每个输入值。详细步骤包括创建UITextField分类,设置cell数据,以及在控制器中监听和保存数据的方法。提供了完整代码示例。
摘要由CSDN通过智能技术生成

一:开篇介绍

    0.talk is cheap show me the code,原谅楼主笨拙,说话不简洁,先附上github地址,https://github.com/horisea/UITextFieldCell,直接撸代码吧。如果帮助了您,请star,star,star,重要的事情说三遍

    1.当您读到这里时,建议先下载demo,不懂再参考博客。在iOS项目开发中,容易遇到各种个人信息填写。比如微信中设置个人信息,等。这种方式是进行控制器跳转,代理或者block传值,这种比较容易,符合常规的cell的应用场景。请继续往下看,后面更精彩!!!




2.但也有很多场景是这种方式,如图所示,这是微信中个人中心的收货地址信息的填写,那么相比较这种cell就相比较难了一点。
  2.1:先说一下应用场景
     (1)如修改地址信息,地址信息编辑等
     (2)电商APP: 提交订单,订单信息的填写
     (3) 支付APP: 绑定银行卡,输入个人信息,身份证,手机号等等
       总之:该中cell的应用在每个APP中都是很常用的,下面就开始怎么设置。。。



二:关于自定义的文本框cell怎么写,不就是自定义的cell里的控件是个textfield,很简单呀?那么请仔细想想具体思路,你就不这么想了。
   1.思路:待解决的问题?????
    1.1:   用到这种cell的场景不用说要提交一系列的信息,那么信息怎么存。。即数据源里的信息???
    1.2:开始是tableview的数据源是空的,后来填写信息后,怎么刷新数据源,怎么对应cell的文本框输入的内容记录下来。。也许你没想这么多??晕了
    1.3: 根据mvc的设计模式,view的事情,view自己做。然而textField是封装在cell里的,但是想要textfield的数据的是控制器,这又该怎么办??

  2.不饶关子了,现在开始工程代码,直接看代码也能懂道理,但是开始前需要想的事情还是要来的;
    2.1 :先给UITextField增加一个属性:NSIndexPath;  突然是不是想到这是不是要绑定tableView的方法中去??
        2.1.1: 为UITextField创建分类,扩充一个成员变量,属性。。??? (分类是可以扩充属性的,不只是书上说的那样,分类只能扩充方法,不能扩充属性)OC的运行时机制,可以动态扩充成员变量,(如果你不知道,可以参考别的地方。)
       代码:
      分类的.h 

#import <UIKit/UIKit.h>

@interface UITextField (IndexPath)

@property (nonatomic,strong)NSIndexPath *indexPath;

@end

   分类.m

#import "UITextField+IndexPath.h"

#import <objc/runtime.h>



@implementation UITextField (IndexPath)

static char indexPathKey;

- (NSIndexPath *)indexPath{// get方法

    return objc_getAssociatedObject(self, &indexPathKey);

}


- (void)setIndexPath:(NSIndexPath *)indexPath{ // set方法

    // OBJC_ASSOCIATION_RETAIN_NONATOMIC  这个参数主要看单词的第三个,OC对象是retain或者copy,跟属性一个道理,

    // OBJC_ASSOCIATION_ASSIGN  这是基本数据;类型需要的

    objc_setAssociatedObject(self, &indexPathKey, indexPath,OBJC_ASSOCIATION_RETAIN_NONATOMIC);

}

@end


  3. 3.1HTextViewCell,.h中; 自定义cell的写法。。 备注都给打好了??? ⚠️注意::加*号的注释非常重要

#import <UIKit/UIKit.h>

@interface HTextViewCell :UITableViewCell

/// 这里啰嗦两句:1.很多时候自定义cell在设置数据的时候都是模型复制,即.h中暴露一个属性,重写set方法,进行数据传值,

         //     2.就是文中这种方式,数据传递,提供接口。。两者的优劣自己体会。

/// 提供接口,设置cell的数据

/// ****indexPath的作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值