您的位置:首页 > 其它

cell展开与收缩 联动效果

2016-01-07 09:42 183 查看
#import "EFPayViewController.h"
#import "EFDetailMessageTableViewCell.h"

static NSString *EFDetailMessageTableViewCellID = @"EFDetailMessageTableViewCell";

@interface EFPayViewController ()<UIScrollViewDelegate, UITableViewDataSource, UITableViewDelegate, EFDetailMessageDelegate>

@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@property (weak, nonatomic) IBOutlet UITableView *tableView;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *heightConstraint;

@end

@implementation EFPayViewController

- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"确认支付";
// Do any additional setup after loading the view from its nib.
}

- (void)viewWillAppear:(BOOL)animated {

[super viewWillAppear:animated];
[self prepareUI];
}

- (void)prepareUI {

// tableView
_tableView.delegate = self;
_tableView.dataSource = self;
// 注册
[_tableView registerNib:[UINib nibWithNibName:EFDetailMessageTableViewCellID bundle:[NSBundle mainBundle]] forCellReuseIdentifier:EFDetailMessageTableViewCellID];

// 去除分割线
_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

// 关闭弹性效果
_tableView.bounces = NO;

// scrollView
_scrollView.delegate = self;
//关闭滚动条
_scrollView.showsVerticalScrollIndicator = NO;
_scrollView.showsHorizontalScrollIndicator = NO;
_scrollView.contentSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);

}

#pragma mark - 代理方法
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 1;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

EFDetailMessageTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:EFDetailMessageTableViewCellID forIndexPath:indexPath];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.delegate = self;

#if 0
static NSString *cellName = @"cellName";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellName];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellName];
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.textLabel.text = @"test";
#endif

return cell;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

return 90;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

EFDetailMessageTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:EFDetailMessageTableViewCellID forIndexPath:indexPath];
if (self.heightConstraint.constant == 90) {
self.heightConstraint.constant = 150;
cell.pullDownImage.transform = CGAffineTransformMakeRotation(M_PI/2*2);
[self.tableView reloadData];
} else
self.heightConstraint.constant = 90;
[self.tableView reloadData];

}

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {

#if 0
self.heightConstraint.constant = 150;
[self.tableView reloadData];
#endif
}

- (void)efDetailMessage:(UITableViewCell *)cell button:(UIButton *)button {
#if 0
if (!button.selected) {
self.heightConstraint.constant = 100;
}
else {
self.heightConstraint.constant = 150;
}

[_tableView reloadData];
#endif
}

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: