iOS block用法
来源:互联网 发布:红杉资本 人工智能 编辑:程序博客网 时间:2024/05/08 10:21
最近在学习的过程中遇到一个问题,整个项目用UINavigationController作为根控制器,某一个表试图控制器使用了自定义的UITableViewCell,该类cell有自定义的几个按钮,当点击cell的任何一个按钮时需要知道当前是哪个cell以及哪个按钮被点击然后做相应的事件响应(更改该行数据,页面跳转等),之前用过代理,这一次想换一种方式,所以选择了用块来代替,下面列出详细步骤
1.在自定义的cell头文件中申明块,并定义相应的块类型
#import <UIKit/UIKit.h>
@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
//添加商品数量block
cell.addGoodNumBlock = ^(ShopingCartTableViewCell *cell)
{
NSIndexPath *indexPath = [self.tableViewindexPathForCell:cell];
NSDictionary *goodsDic = [self.dataSourceobjectAtIndex:indexPath.section];
NSArray *goodsArray = [goodsDic objectForKey:@"array"];
self.good = [goodsArrayobjectAtIndex:indexPath.row];
self.good.num = [cell.numTF.textintValue]+1;
// 增加商品数量
if ([selfalertNum])
{
cell.numTF.text = [NSStringstringWithFormat:@"%d",[cell.numTF.textintValue] + 1];
}
// 修改总金额
if (cell.checkboxBtn.selected)
{
[self alertSelecedGoodNum];
// 计算价格
[self alertSum];
indexPath = [NSIndexPath indexPathForRow:0 inSection:self.dataSource.count];
NSArray *indexArray=[NSArrayarrayWithObject:indexPath];
[self.tableViewreloadRowsAtIndexPaths:indexArray withRowAnimation:UITableViewRowAnimationAutomatic];
}
};
- iOS block的用法
- iOS block的用法
- iOS block的用法
- IOS 浅谈Block用法
- iOS block的用法
- iOS block的用法
- iOS block的用法
- iOS block的用法
- iOS block的用法
- iOS开发block用法
- iOS block 用法
- iOS block用法
- iOS block的用法
- iOS block的用法
- iOS block的用法
- iOS block的用法
- ios Block详细用法
- iOS block的用法
- IDENTITY(函数)
- inno setup详解
- hadoop错误INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1
- kVC 与 KVO初步认识
- 利用strace 调试程序
- iOS block用法
- 同步Socket客户端代码
- iOS- 详解文本属性Attributes
- Oracle 无法创建视图。
- UVA - 575 Skew Binary
- 二叉树(15)----由中序遍历和后序遍历重建二叉树,递归方式
- 关于oracle数据库段segment的总结
- shell 脚本命令
- php---数字格式化