如何获取UITableView中cell的frame值
这个可以用来处理UITableView弹出键盘的问题
本人视频教程系类 iOS中CALayer的使用
效果:
源码:
//
// ViewController.m
// TableViewCellFrame
//
// Created by YouXianMing on 14/12/24.
// Copyright (c) 2014年 YouXianMing. All rights reserved.
//
#import "ViewController.h"
static NSString *YOU_XIAN_MING = @"REUSED_FLAG";
@interface ViewController ()<UITableViewDataSource, UITableViewDelegate>
@property (nonatomic, strong) UITableView *tableView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// 关闭状态栏
[UIApplication sharedApplication].statusBarHidden = YES;
// 创建tableView
[self createTableView];
}
#pragma mark - TableView相关
- (void)createTableView {
self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds
style:UITableViewStylePlain];
self.tableView.delegate = self;
self.tableView.dataSource = self;
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:YOU_XIAN_MING];
[self.view addSubview:self.tableView];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 20;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:YOU_XIAN_MING];
cell.textLabel.text = [NSString stringWithFormat:@"YouXianMing - %02ld", (long)indexPath.row];
cell.textLabel.textColor = [UIColor grayColor];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// 获取对应cell的rect值(其值针对于UITableView而言)
CGRect rect = [self.tableView rectForRowAtIndexPath:indexPath];
// 做动画效果
NSLog(@"%@", NSStringFromCGRect(rect));
[self.tableView setContentOffset:CGPointMake(rect.origin.x, rect.origin.y)
animated:YES];
}
@end
关键的地方: