大发体育娱乐在线-大发体育娱乐官方网站-大发体育娱乐登录网址
做最好的网站

iOS block用法

来源:http://www.dfwstonefabricators.com 作者:关于计算机 人气:103 发布时间:2019-11-30
摘要:iOS block用法 方今在念书的进程中蒙受三个标题,整个项目用UINavigationController作为根调节器,某一个表试图调节器接收了自定义的UITableViewCell,该类cell有自定义的多少个开关,当点击

iOS block用法

方今在念书的进程中蒙受三个标题,整个项目用UINavigationController作为根调节器,某一个表试图调节器接收了自定义的UITableViewCell,该类cell有自定义的多少个开关,当点击cell的其余二个开关时索要驾驭当前是哪些cell以至哪些开关被点击然后做相应的事件响应(校订该行数据,页面跳转等),以前用过代理,这一遍想换风流浪漫种方法,所以选拔了用块来代替,下边列出详细步骤

1.在自定义的cell头文件中证明块,并定义相应的块类型

#import

@class ShopingCartTableViewCell;

//块申明

typedef void(^reduceGoodNumS)(ShopingCartTableViewCell *);

typedef void(^addGoodNumS)(ShopingCartTableViewCell *);

typedef void(^selectGoodS)(ShopingCartTableViewCell *);

@interface ShopingCartTableViewCell : UITableViewCell

//相应的块变量定义

@property (strong, nonatomic) reduceGoodNumS reduceGoodNumBlock;

@property (strong, nonatomic) addGoodNumS addGoodNumBlock;

@property (strong, nonatomic) selectGoodS selectGoodBlock;

@end

2.在动用自定义cell填充表格之处,实现块功效,这里以增加商品数量为例,减弱商品数量和当选商品数量同下

//增多货色数量block

cell.addGoodNumBlock = ^(ShopingCartTableViewCell *cell)

{

NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];

NSDictionary *goodsDic = [self.dataSource objectAtIndex:indexPath.section];

NSArray *goodsArray = [goodsDic objectForKey:@"array"];

self.good = [goodsArray objectAtIndex:indexPath.row];

self.good.num = [cell.numTF.text intValue]+1;

// 扩充商品数量

if ([self alertNum])

{

cell.numTF.text = [NSString stringWithFormat:@"%d",[cell.numTF.text intValue] + 1];

}

// 校订总金额

if (cell.checkboxBtn.selected)

{

[self alertSelecedGoodNum];

// 总计价格

[self alertSum];

indexPath = [NSIndexPath indexPathForRow:0 inSection:self.dataSource.count];

NSArray *indexArray=[NSArray arrayWithObject:indexPath];

[self.tableView reloadRowsAtIndexPaths:indexArray withRowAnimation:UITableViewRowAnimationAutomatic];

}

};

block用法 近来在就学的历程中遇见二个问题,整个项目用UINavigationController作为根调节器,某三个表试图调控器采取了自定义的UITableVie...

本文由大发体育娱乐在线发布于关于计算机,转载请注明出处:iOS block用法

关键词:

最火资讯