如何获取UITableView中cell的frame值

简介:

如何获取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

关键的地方:

目录
相关文章
|
物联网 API 网络架构
Zigbee 组网过程分析|学习笔记
快速学习Zigbee 组网过程分析
Zigbee 组网过程分析|学习笔记
|
开发者 iOS开发
【教程】无法验证 app 需要互联网连接以验证是否信任开发者
【教程】无法验证 app 需要互联网连接以验证是否信任开发者
|
4月前
|
监控 数据挖掘 API
从踩坑到高效落地:淘宝商品详情API的实操心得
淘宝商品详情API提供全维度商品数据,含基础信息、详情页HTML、SKU、价格、销量等,支持比价、代购、数据分析及内容电商等场景,涵盖item.get、item.get_pro等核心接口,接入便捷高效。
|
10月前
|
人工智能 运维 API
高级RAG优化手册:3招解决检索不准和查询模糊
本文深入解析RAG(检索增强生成)技术的核心优化方法,涵盖背景、架构与实践。RAG通过整合外部知识库,弥补大语言模型在实时性、准确性和专业性上的不足,广泛应用于企业场景。文章系统讲解RAG如何解决知识静态、生成幻觉与专业深度不足等问题,并剖析其离线索引与在线生成的闭环流程。此外,还介绍了高级优化策略,如查询重写、混合检索与结果重排序,助力突破RAG应用瓶颈。
2090 1
|
人工智能 算法 数据格式
DeepSeek 开源周第二弹!DeepEP:专为 MoE 训练和推理设计的并行通信库
DeepEP 是 DeepSeek 开源的首个专为混合专家模型(MoE)训练和推理设计的通信库,支持高吞吐量、低延迟通信,优化 NVLink 和 RDMA 网络性能。
2067 3
|
存储 开发框架 Java
libgdx ashley框架的讲解
本文介绍了libgdx游戏开发框架中的Ashley实体系统,包括如何引入依赖、创建实体、添加组件和系统,并通过代码示例演示了如何使用PooledEngine、Component、EntitySystem等核心类来构建游戏逻辑。
473 1
|
Docker 容器
docker 容器重启
【10月更文挑战第30天】docker 容器重启
4222 0
|
缓存 监控 安全
如何设计大型项目技术运营服务架构
【2月更文挑战第3天】如何设计大型项目技术运营服务架构
1126 1
|
SQL 关系型数据库 MySQL
mysql 数据库查询 查询字段用逗号隔开 关联另一个表并显示
mysql 数据库查询 查询字段用逗号隔开 关联另一个表并显示
572 2
|
Linux Android开发 数据安全/隐私保护
哪家好用?四款国内外远程桌面软件横测:ToDesk、向日葵、TeamViewer、AnyDesk(二)
哪家好用?四款国内外远程桌面软件横测:ToDesk、向日葵、TeamViewer、AnyDesk(二)
1095 0