UITableView

实现可滑动操作的UITableView教程 UITableView在iOS应用中扮演着核心的角色,它通过展示一个可滚动的列表,极大地简化了用户界面。基本的UITableView只支持垂直滚动,但通过扩展,我们能够让单元格支持左右滑动操作。这种交互方式在各种场景中都有实际应用,比如编辑、删除条目等。要实现自定义的UITableViewCell以支持滑动效果,首先需要创建一个UITableViewCell的子类。这个子类将定义滑动操作的外观和行为。 阅读详情

UITableView

属性:初始化方法

 UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.frame style: UITableViewStylePlain];
    tableView.backgroundColor = [UIColor cyanColor];
    [self.view addSubview:tableView];
    [tableView release];
设置行高

tableView.rowHeight = 100;
tableView的协议有两套<UITableViewDataSource, UITableViewDelegate>两个协议需要设置两个代理人,还有一套协议是UIScrollerView的协议

  // 设置代理人
    tableView.dataSource = self;
    // 设置代理人
    tableView.delegate = self;

很重要的协议

dataSource的协议方法-(NSInteger)tableView:numberOfRowsInSection:

指定每个分区有多少行

// 标记方法, 通过标记快速找到方法
#pragma mark tableView必须实现的协议方法:指定每个分区有多少行!!!!!!!!!!!!!!!
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    // 可以根据分区控制行数
    if (section % 2 == 0) {
        return 10;
    } else{
        return self.arr.count;
    }
    
    // 一行显示一个人,用数组来显示
    // 超过个数会崩溃(数组越界)
//    return self.arr.count;
    
}

-(UITableViewCell *)tableView:cellForRowAtIndexPath:(NSIndexPath *)indexpath

通过这个方法可以让tableView显示内容:tableViewCell通过重用避免了多余的创建,一般来讲tableView显示的cell数是有限的,为了提高效率.避免重复创建,利用重用解决问题.重用也是tableView最常见的面试问题

1.先指定一个cell的重用标识:一般来说一个tableView对应一个重用标识.重用标识的作用就是告诉系统,那个cell对应的tableView

2.系统先会根据重用标识在重用池找,有没有闲置的cell,如果有直接拿来用,如果没有再创建

3.cell提供了三种视图textLable,detailTextLable,imageView三种视图

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
//     tableViewCell通过重用避免了多余的创建,一般来讲一个tableView显示的cell数是有限的,所以为了提高效率,避免重复的创建,利用重用解决问题,重用也是常见的tableView的面试问题!!!!!!!!!!!!!!!!!  (解决滑动卡顿的问题)
    // 1.先指定一个cell的重用标识
    // 一般来讲,一个tableView对应一个重用标识,重用标识的作用就是告诉系统,哪个cell对应tableView
    static NSString *reuse = @"resuse";
    // 系统先会根据重用标识在重用池里找,有没有闲置的cell.如果有直接拿来用,如果没有,再创建
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:reuse];
    // 如果cell没找到,对应的cell是0x0
    if (!cell) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:reuse] autorelease];
    }
    // cell提供了三种视图,两个lable,一个imageView
    //                                                         对应的行数
//    cell.textLabel.text = [NSString stringWithFormat:@"%ld", indexPath.row];
    cell.textLabel.text = self.arr[indexPath.row];
    //                                                                  分区
    cell.detailTextLabel.text = [NSString stringWithFormat:@"%ld", indexPath.section];
    cell.imageView.image = [UIImage imageNamed:@"3.jpg"];
    // 可以通过它找到指定的行数
//    NSLog(@"%ld", indexPath.row);
    return cell;
}
delegate-(void)tableView:didS.....

#pragma mark 这个是delegate的协议方法,主要功能就是实现点击!!!!!!!!!!!!!!!
//- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
//    NSLog(@"row = %ld", indexPath.row);
//    NSLog(@"section = %ld", indexPath.section);
//    // 通过数组,index.row来打印点击的内容
//    NSLog(@"%@", self.arr[indexPath.row]);
//
//}

以上是三个特别特别特别重要的协议方法

点击方法中还有一个协议是didDes.....的方法不要和点击方法弄混了(延迟一次点击)

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{
        NSLog(@"row = %ld", indexPath.row);
        NSLog(@"section = %ld", indexPath.section);
        // 通过数组,index.row来打印点击的内容
        NSLog(@"%@", self.arr[indexPath.row]);
    
}



设置tableView中有多少分区

#pragma mark 设置tableView里有多少个分区(分区就是)
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 3;
}

设置分区的标题(header footer index)

#pragma mark 设置分区的标题
//- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
//    // 自带悬停效果
//    return [NSString stringWithFormat:@"%ld", section];
//}
// 设置底部的标题
//- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section{
//    return @"byebye";
//}
// 左边竖着的标题
//- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
//    return @[@"A", @"B", @"C"];
//}
动态设置行高

// 动态设置行高
//- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
//    if (indexPath.row % 2 == 0) {
//        return 150;
//    } else{
//        return 100;
//    }
//
//}
tableView包含两个部分还有scrollView的协议





手把手教你学Simulink--基于火电发电系统的场景实例:燃煤发电机组的锅炉-汽轮机协调控制仿真 本文介绍了使用Simulink构建燃煤发电机组锅炉-汽轮机协调控制系统的仿真方法。系统包含锅炉子系统、汽轮机子系统和协调控制器三大模块,通过传递函数建模和PID控制策略实现协调控制。详细说明了从模型创建、子系统设置到控制器设计的完整流程,包括燃料供给、汽轮机模型和数据处理等关键环节。最后通过性能评估验证系统响应速度、参数稳定性和效率等指标。该仿真方法为火电系统控制策略设计和优化提供了有效工具。 阅读详情

相关推荐

OpenWRT系统启动流程全解析:从procd到ubus的完整链路(附源码分析)

本文深入解析了OpenWRT系统从内核移交控制权到用户空间服务就绪的完整启动链路。核心聚焦于进程管理器procd与通信总线ubus的协同工作机制,通过源码分析揭示了状态机转换、服务注册与事件分发的内在逻辑,为系统定制、启动优化与故障调试提供了清晰指南。

weixin_28335283的博客 532

UITableView 使用详解

UITableview

lmyuanhang的专栏 1866

Android ------ 开源的Modnet算法实现抠图和更换背景

Portrait Matting (sight-x.cn) 飞桨PaddlePaddle-源于产业实践的开源深度学习平台 GitHub - PaddlePaddle/PaddleSeg at develop

切切歆语的博客 1万+

UI学习——UITableView

以上就是本篇文章的全部内容。

m0_73974920的博客 3818

【HAL库-STM】智能温控按键小风扇【胎教级教学】

硬件设备:DHT11,0.96寸oled屏,二/三/四线风扇(不挑),面包板 、f10的精英板等等。当人在的风扇面前时可以自行控制风扇,不在面前时又想开风扇就让他温控自行开启,(在这里有一个想法就是加上蓝牙和wifi控制的功能能够远程遥控,这个如果做的再全一点就要自主研发是一个多功能app,这里没有做。针对这个dht11,我一开始是卡在了这个check函数里面,一直是我给完dht11低电平和高电平后,dht11不回复我低电平和高电平,这个不是我的问题,当时代码是没毛病的,这个点一直卡着我。吐血五天实现小成品

weixin_52451652的博客 1740

海康威视HiTools实战:5分钟搞定工业镜头选型(附避坑指南)

本文详细解析了海康威视HiTools在工业镜头选型中的应用,通过五步操作流程帮助用户快速匹配适合的镜头型号。文章深入探讨了工业视觉系统的核心参数,包括焦距、视野、景深和畸变控制,并提供了光源搭配和系统集成的实战指南,助力提升机器视觉检测精度与效率。

u0v1w2x3的博客 1056

第一、UITableView的使用大全

首先、对UITableView进行讲解,下面有对它进行实际的应用 UITableView       显示大型内容的列表             单行,多列              垂直滚动,没有水平滚动              大量的数据集     性能强大,而且普遍存在于iPhone的应用程序中 TableView

ch_soft的专栏 3万+

【C语言笔记初级篇】第一章:C语言快速入门及注意事项

(1)第一个C语言程序 A:利用vs2010写C语言程序 1:按以下步骤新建工程 2:添加源文件,“.c”文件 B:第一个C语言代码 1:以下是基本的C语言程序 2:由于没有设置连接器,所以打印结果没有显示,按照如下步骤链接控制台 (2)数据类型 A:基本数据类型及占用字节 B:一些概念的梳理 概念一:关于计算机的单位 位(bit):计算机通过电路的开关和闭合处理信息,电路通...

快乐江湖的博客 3737

UITableView的简单使用方式

极简的列表实现 - 几行代码就能创建功能完整的列表最佳性能 - 专门为垂直列表优化丰富的内置功能 - 编辑模式、索引、刷新控制等成熟的生态系统 - 大量第三方库和社区支持对于简单的垂直列表需求,UITableView 通常是最简单、最高效的选择。

Mr_Tony的专栏 468

【制作100个unity游戏之28】花半天时间用unity复刻童年4399经典小游戏《黄金矿工》(附带项目源码)

在游戏发展史上,有些游戏以其简单而耐玩的特性,深深地烙印在了玩家的记忆中。《黄金矿工》就是其中之一,它曾经在4399等游戏平台上掀起了一股游戏热潮。这款游戏不仅给无数玩家带来了欢乐,还让他们体验到了挖掘金矿的刺激与乐趣。在这个项目中,我们将花费半天的时间,利用Unity引擎,重新打造这款经典小游戏。通过复刻《黄金矿工》,我们不仅是在向童年的回忆致敬,更是在挖掘游戏设计的精髓。在这个过程中,我们将学习如何实现游戏的核心玩法,设计简洁而有效的游戏机制。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2902

条件DDPM:Diffusion model的第三个巅峰之作

前言:DDPM从2020年诞生,短短一年的时间,模型上有两个巨大的改进,其中一个就是condition的引入,最近大部分DDPM相关的论文都会讨论这一点,有些文章称之为latent variable。和当年GAN的发展类似,CGAN和DCGAN的出现极大程度上促进了GAN的发扬光大,意义重大。本文基于前面几篇文章继续聊一聊: 从VAE到Diffusion Model_沉迷单车的追风少年-优快云博客 为什么diffusion model扩散模型可以称为score-based models?_沉迷单车的.

沉迷单车的追风少年 1万+

UITableView 总结

知识点回顾: 1.TableView 2.UITableViewController 3.两个协议,一个关于数据加载的协议< UITableViewDataSource >,一个关于性外和外观的协议< UITableViewDelegate > 4.对NSIndexPath类的扩展 5.tableView的单元格cell 6.响应点击事件 7.重用机制下布局cell的子视图时需要注意的问题

ohyeahhhh的博客 3470

Centos 7 Linux 安装单机 Hadoop(HDFS):下载、安装、配置、测试

本文详细介绍了在 CentOS 7 系统上安装与配置单机 Hadoop(HDFS)的完整流程,涵盖 JDK 环境准备、Hadoop 安装包下载与部署、核心配置文件(core-site.xml、hdfs-site.xml 等)修改、SSH 免密登录设置、HDFS 格式化及服务启动,并通过命令行与 Web 界面验证 HDFS 和 YARN 功能,适合 Hadoop 初学者快速搭建本地测试环境。

寒水馨 · 轻量级技术文档 · hanshuixin.org 3235

UITableView实例详解

UITableView实例详解 看TableView的资料其实已经蛮久了,一直想写点儿东西,却总是因为各种原因拖延,今天晚上有时间静下心来记录一些最近学习的TableView的知识。下面进入正题,UITableView堪称UIKit里面最复杂的一个控件了,使用起来不算难,但是要用好并不容易。当使用的时候我们必须要考虑到后台数据的设计,tableViewCell的设计和重用以及tabl

hgy2011的专栏 3883

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

UITableView横用

UITableView横用

浮生若梦 为欢几何 3220

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

UITableView 手动创建

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px} p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #00830e} p.p4 {margin: 0.0px 0.0px 0.0px 0.

woainike的专栏 3781

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

让UITableView响应touch事件

我们知道UITableView没有像UIButton那样可以通过addTarget方法来监听touch事件,因此在某些场合,特别是在UITableViewCell中包含UITextField的时候,我们很有可能想通过点击UITableView的其他地方来取消UITextField的焦点。也许有朋友会说,使用UITapGestureRecognizer手势来取消焦点,这样是可以行得通,但是如果TextField中有clearButton或者其自定义的Button的时候,手势就会吸收掉事件了,导致按钮无效。

心虽远,情未变,乐依然。 4862

UITableView can scroll background view

UITableView的backgroundView属性可以设置其背景,但是背景不能随Table的拖动而移动,也就是固定不移动的。有没有办法让其背景也随拖动而移动呢。深入研究了一下UITableView api,好像没有提供这样的api。难道不能实现? google了一天也没有得到好的解决办法。  已经半夜一点过了,问题还没解决,睡不着啊。不知道是不是程序员的灵感时段总是在半夜,在半夜两点的时候,

Care iOS技术团队 3757

ADLivelyTableView与原生UITableView对比:优势与适用场景分析

ADLivelyTableView是一个基于原生UITableView扩展的增强组件,它为iOS应用带来了更加生动的表格视图体验。本文将深入对比ADLivelyTableView与原生UITableView的核心差异,帮助开发者理解何时选择这款强大的第三方库来提升用户界面效果。 ## 核心功能对比:超越基础表格体验 原生UITableView作为iOS开发的基础组件,提供了高效的列表展示功能,

gitblog_00610的博客 672

UITableView 介绍

一、UITableView 理解 在移动应用中,能看到各式各样的表格数据。在iOS中,要实现表格数据的展示,最常用的做法就是使用UITableView。UITableView继承自UIScrollView,因此支持垂直滚动,而且性能极佳。 UITableview有分组和不分组两种样式,可以在storyboard或者是用代码设置。 A、UITableViewStyleGrouped

HenryZhang的博客 807

UITableView探索

在iOS程序中,UITableView得到了广泛的应用。本系列文章将逐步由浅入深的探索UITableView特性。

翌轩的iphone开发专栏 1656

UITableView的常用用法

1.UITableView的概述 UITableView继承于UIScrollView,表现为plain和group两种风格。不是TableView要想使view显示tableView格式则必 须遵守datasource和delegate这两个协议 dataSourc...

chongxienuo3437的博客 137

UITableView重用机制

[[[ 重用实现分析:   查看UITableView头文件,会找到NSMutableArray*  visiableCells,和NSMutableDictnery* reusableTableCells两个结构。visiableCells内保存当前显示的cells,reusableTableCells保存可重用的cells。   TableView显示之初,reusableT

jinangzhu的专栏 452

UITableView套UITableView数据刷新

https://www.jianshu.com/p/ee4b2bd54d08 网上关于tableview嵌套tableview的文章很多,纵览很多后发现有两点没有满足需求 把两个tableview放在一个控制器中这样对大批量的数据处理不够友好 没有做到tableview互斥滚动(只有一个可以滚动) 主要的一点 在父控制器的tableview的GSTableview....

weixin_30588729的博客 139
上一篇: UIImageView动画
下一篇: UITableView的自定义cell
王木木琳
博客等级 码龄11年 1粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值