UITabelView代理方法详解

45.qt quick-qml虚拟软键盘详解(一) 1.qml虚拟键盘介绍 Qt虚拟键盘的主要功能包括: 可定制的键盘布局和风格与动态切换。 带有单词选择的预测性文本输入。 角色预览和替代角色视图。 自动大小写和空格插入。 不同分辨率的可伸缩性。 支持不同的字符集(拉丁,简体/繁体中文,印地语,日语,阿拉伯语,希伯来语,韩语和其他)。 支持大多数常见的输入语言,可以轻松扩展语言支持。 从左到右和从右到左的输入。 硬件键支持2路和5路导航。 手写支持,带有全屏输入的手势。 音频反馈。 跨平台功能。 支持多国语言,高达40多个语言 本 阅读详情
<a target=_blank href="http://download.youkuaiyun.com/detail/vaercly/7908395">点击打开下载链接</a>
//
//  RootViewController.m
//  LessonUITabelView
//
//  Created by lanouhn on 14-9-3.
//  Copyright (c) 2014年 vaercly@163.com 陈聪雷. All rights reserved.
//

#import "RootViewController.h"
#import "StudentCell.h"
@interface RootViewController ()<UITableViewDataSource, UITableViewDelegate>
//存储有一一对应关系的数据时吗要用字典存储
@property (nonatomic, retain) NSDictionary *names;
@property (nonatomic, retain) NSArray *titles;//存储分区的title
@end

@implementation RootViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        NSArray *firstGroup = @[@"聪雷", @"小明",@"小狗"];
        NSArray *secondGroup = @[@"聪从",@"小猫",@"笑天",@"飞飞"];
        NSArray *thirdGroup = @[@"天天",@"亮亮", @"aa", @"bb", @"晓光",@"小明"];
        self.names = @{@"A": firstGroup, @"D": secondGroup, @"C": thirdGroup};
        //取出字典中的key, 进行升序排序
        self.titles = [[self.names allKeys] sortedArrayUsingSelector:@selector(compare:)];
        
    }
    //初始化时加载数据
    [self readDataFromPlist];
    return self;
}

- (void)readDataFromPlist
{
    //1 获取文件路径
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"plist"];
    //2 根据文件路径初始化一个OC中的字典对象
    NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:filePath];
    NSLog(@"%@", dic);
}

- (void)loadView
{
    //tabelView 表视图, 是iOS中用来显示以及能够编辑一系列具有相同数据结构的信息列表的控件, UITabelView继承自UIScrollView, 所以能够滑动, 但是只能在垂直方向滑动, 而且只有一列, UITabelView是有分区(section, 对应班级学生的分组), 以及列(row, 对应一个组的成员), 对于分区和行的索引值都是从0开始的, 若想获取一行(获取某个班的某个人), 要根据分区所在分区的行(根据学生所在的分组和组中的位置(第几个人))决定, 而且两个信息都存储在NSIndexPath类的对象中, UITabelView的每一行都是一个UITabelViewCell类型的对象,每一个cell上都包含imageView(left), label(textLabel, detailLabel, center), accessoryView(right)
    UITableView *tabelView = [[UITableView alloc] initWithFrame:[UIScreen mainScreen].bounds style:UITableViewStylePlain];
    //设置分割线的样式
    tabelView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
    tabelView.separatorColor = [UIColor grayColor];
    //指定tabelView数据源, 为tabelView显示提供数据支持, 需要服从UITabelViewDataSource协议
    tabelView.dataSource = self;
    //设置tableView的代理(来处理cell的点击事件)
    tabelView.delegate = self;
    //设置tableView行高
    tabelView.rowHeight = 70;
    self.view = tabelView;
    [tabelView release];
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
   
    self.navigationItem.title = @"蓝鸥9班";
}

//设置tabelView的行数(每个分组的行数)
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
//    //1 先获取key值
//    NSString *key = self.titles[section];
//    //2 根据key值, 获取对应的数组
//    NSArray *group = self.names[key];
//    //3 求数组的元素个数
//    return group.count;
//    return [self.names[self.titles[section]] count];
    return 1000;
}

//用来创建cell, 每一行都要对应一个cell
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//    UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
//    //1 先获取key
//    NSString *key = self.titles[indexPath.section];
//    //2 根据key获取value(数组)
//    NSArray *group = self.names[key];
//    //3 从数组中去元素
//    cell.textLabel.text = group[indexPath.row];
    
//    cell.textLabel.text = self.names[self.titles[indexPath.section]][indexPath.row];
//    cell.textLabel.text = [[self.names objectForKey:[self.titles objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];
    
    //1 创建重用标示符
    static NSString *identifier = @"lanou7ban";
    //2 根据标示符去重用队列取出可重用的cell
    StudentCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
    //3 判断是否成功取到可重用的cell
    if (!cell) {
        //若没有成功取到可重用的cell, 就创建一个cell
        //创建完cell之后一定要给cell贴一个重用标示符, 方便别人重用
        cell = [[[StudentCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier] autorelease];
    }
    cell.textLabel.text = @"vaercly";
    cell.detailTextLabel.text = @"frank";
    
    return cell;
}
#pragma mark - UITableViewDelegate
//设置行高
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //偶数的cell高度为100
    //奇数的cell高度为50;
    if (indexPath.row % 2) {
        return 100;
    }
    return 50;
}

//当cell被选中是触发
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"%d", indexPath.row);
}

#pragma mark - UITableViewDataSourse
/*
//返回tableView分区的个数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return self.names.count;
}

//设置每个分区头显示的文字
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    return self.titles[section];
}

//设置tableView左边的索引值 (用来快速定位分区, 方便查找), 要和每个分区的title对应上
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
    return self.titles;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
*/
- (void)dealloc
{
    self.names = nil;
    [super dealloc];
}

/*
#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

DeepSeek Harness 工程实践与高级特性:从测试到安全的完整指南 AI Agent 能执行命令、读写文件、自主决策,能力越强风险越大——删文件、泄密钥、死循环、竞态条件随时可能发生。本文是 DeepSeek Harness 系列第三篇,深入剖析其工程实践与高级特性:从单元测试到真实 API 冒烟测试的分层策略,拒绝 Mock 依赖、坚持"验证世界而非自我报告";从正交结果、规范化契约到 Dispose 静止的防御式编程铁律;以及跨平台多层进程沙箱、文件系统版本守卫、fail-closed 审批机制、模型编写的工作流引擎与上下文压缩等高级能力。 阅读详情

相关推荐

Xilinx FPGA MultiBoot实战:7Series与UltraScale的SPI Fallback配置详解

本文深入解析了Xilinx FPGA的MultiBoot(多启动)与Fallback(回退)功能,针对7系列与UltraScale/UltraScale+系列,提供了从约束文件编写、看门狗集成到镜像烧录的完整实战配置指南。文章重点对比了两个系列在SPI Fallback配置上的关键差异与注意事项,旨在帮助工程师构建高可靠、永不宕机的FPGA系统。

weixin_29197051的博客 547

UITableView的代理

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34111819的博客 114

Blender学习笔记——制作向量场

#下载Blender - UE4 - FGA Vector Field Editor插件的压缩包,Github上的下载地址如下:https://github.com/isathar/Blender_UE4_VectorFieldEditor #下载并解压后将FGA VectorFields文件夹复制到C:\Program Files\Blender Foundation\Blender 2.83\2.83\scripts\addons目录下,此步骤可根据blender安装的位置自行调整,只要放入addon

wychao2020的博客 1725

30. UITableViewDelegate详解

UITableViewDelegate它用于表现cell的显示和行为,我们查看它的定义:public protocol UITableViewDelegate : NSObjectProtocol, UIScrollViewDelegate { // 自定义显示 // cell将要显示时回调 @available(iOS 2.0, *) optional public f

邪恶枫叶的博客 3474

arduino esp8266_Arduino传感器教程 第22章ESP8266 控制 5V 继电器

ESP8266控制5V继电器目录一、NodeMCU二、工作原理本文将使用亚马逊 AlexaEcho 和 ESP8266 控制 5V 继电器。NodeMCUNodeMCU 是一个开源的 IoT 物联网硬件开发板,由于它支持 WIFI 功能且使用方法十分类似 Arduino 开发板,所以近些年获得了越来越多来自全世界的创客朋友们的青睐。NodeMCU 尺寸与 Arduino Nano 类似。...

weixin_39611722的博客 3456

基于RYU+Mininet的SDN校园网络实战:从零搭建虚拟化实验环境

本文详细介绍了如何利用RYU控制器和Mininet搭建SDN校园网络实验环境,从Ubuntu虚拟机准备到网络拓扑设计,再到关键网络功能实现。通过实战案例展示SDN在校园网络中的应用优势,包括简化配置、提升效率等,为网络工程师和学生提供了一套完整的虚拟化实验方案。

weixin_30872499的博客 456

【转】有了Auto Layout,为什么你还是害怕写UITabelView的自适应布局?

Apple 算是最重视应用开发体验的公司了.从Xib到StoryBoard,从Auto Layout到Size Class,每一次的更新,都会给iOS应用的开发带来不小的便利.但是,对于绝对多数iOS攻城狮来说,我们依然还是很害怕写UITabelVIew的自适应布局.当然,害怕不是因为我们不会写,或者本身有什么特殊的技术点,而是因为太麻烦.当然,文章的后半部分,会给出...

aochang2927的博客 150

SimpleFOC STM32实战:基于F103与HAL库,剖析速度环与电流环的协同控制

本文详细介绍了基于STM32F103与HAL库的SimpleFOC实战应用,重点剖析速度闭环控制与电流环的协同工作原理。通过开发环境搭建、参数调试技巧及性能优化方案,帮助开发者高效实现无刷电机精准控制,适用于机器人、无人机等高精度应用场景。

weixin_29170327的博客 476

UITableView各代理方法

UITableView UITableView是一个控件,而控件的创建销毁是由视图控制器控制的。控件本身不能创建销毁。当UITableView需要创建的时候,必须设置视图控制器为代理,实现UITableViewDataSource,UITableViewDelegate这两个协议,其中UITableViewDataSource协议为数据源,往往是数组,也就是显示的内容;而UITableVie

linxiqin的博客 723

嵌入式调光控制库:轻量级软启/渐变/记忆逻辑实现

调光控制是智能照明系统的核心基础功能,涉及亮度调节、人机交互与电气安全多重需求。其底层原理依赖于对相位角或PWM占空比的精确时序控制,并需融合软启动、渐变过渡、状态记忆等工程化逻辑。这类轻量级调光行为逻辑层,不直接操作硬件寄存器,而是以确定性、无动态内存、可配置的方式封装用户意图到目标亮度值(0–100%)的映射过程,显著提升产品鲁棒性与跨平台复用能力。广泛应用于TRIAC交流调光、LED直流PWM驱动及DALI/Matter等智能照明协议网关中,尤其适合资源受限的Cortex-M系列MCU和FreeRTO

weixin_28949937的博客 579

《QT+PCL》点云配准进阶——GROR配准

GROR点云配准

阁楼 1318

有了Auto Layout,为什么你还是害怕写UITabelView的自适应布局?

Apple 算是最重视应用开发体验的公司了.从Xib到StoryBoard,从Auto Layout到Size Class,每一次的更新,都会给iOS应用的开发带来不小的便利.但是,对于绝对多数iOS攻城狮来说,我们依然还是很害怕写UITabelVIew的自适应布局.当然,害怕不是因为我们不会写,或者本身有什么特殊的技术点,而是因为太麻烦.当然,文章的后半部分,会给出相应的解决方案,毕竟本文不是为了

iOS122-移动混合开发研究院 602

QCC304x系列开发教程(实战篇)之5.2 QCC3040之提示音

earbud_init.c中,初始化table中UiPrompts_Init /*! \brief Table of initialisation functions */ static const init_table_entry_t appInitTable[] = { ......... {UiPrompts_Init, 0, NULL}, ......... } ui_prompts.c中是提示音音处理的主要逻辑和配置源文件 函数static void uiPro...

心跳包的博客 2393

iOS简单实现UITableView,及自定义UITableViewCell

##以下演示最简单的实现UITabelView //自定义cell //.h文件 #import <UIKit/UIKit.h> @interface MyTableViewCell : UITableViewCell @property (nonatomic, strong) UILabel *labelTitle; @end //.m文件 #import "MyTableView...

大炮哥的博客 1410

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

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

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

objective-c指UITabelView

1.   首先,Controller需要实现两个  delegate ,分别是  UITableViewDelegate 和  UITableViewDataSource    2.然后 UITableView对象的 delegate要设置为 self。    3. 然后就可以实现这些delegate的一些方法拉。        (1)- (NSInteger)numberO

1452

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

为UITabelView添加图片、描述、样式等等

// // ViewController.m // 11—29—tableview—imageAndStyle // // Created by kevin on 13-11-29. // Copyright (c) 2013年 kevin. All rights reserved. // 这个通过storyboard 添加一个tableview,并且右键tableview 将UITabl

kuizhang1的专栏 841

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

iOS开发学习(一)—— UITabelView的简单应用(swift实现)

UITableView是一种应用面极广的控件 UITableView有几个个基本属性: frame (当然是设置位置和大小的啦) style (.plain和.grouped) 区别可以看这个 当我们准备开始使用UITableView时应该先声明一个对象 var yourTableView: UITableView! 当然也可以直接初始化 var yourTableView = UITa...

qq_43478399的博客 307

UITabelView分页

1. 首先需要做的是, 定义数据源. UITableView是需要一个数据源的, 我这用使用的是SQLITE数据库, 因此做了一个小小的分页查询. SQLIte的分页查询与MySQL的相同.    [sql] view plain copy select * from table where 列名 = 条件 limit 页数 * 每页显示记录数, 每页显示记录数  

Liuwx_优快云的博客 445

UI day 9 UITabelView

UITabelView 1. UItabelView API文档总结: (1)UITabelView的父类是UIscrollView,所以他是可以滚动的,但是只能在竖直方向上滚动 (2)UITabelView是iOS中提供的用来列表的数据,但是只有一列 (3)UItabelView可以有多个分组构成,(section)每个分组下有很多行(row)分组和行的下标都是从零开始(eg:secti

张乾坤 353

备忘-给UITabelView内的单元格分别定制高度

主要有两行代码,分别写在UITableView的两个代理方法里面: - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath(显示单元格的内容) - (float )tableView:(UITableView *)tableView

zhuzhu_2005的专栏 608

UITabelView(一)

1 #import "RootViewController.h" 2 3 @interface RootViewController ()<UITableViewDataSource,UITableViewDelegate> 4 @property(nonatomic,strong)NSArray *dataSourceArray; 5 @end ...

weixin_30954265的博客 149

UITabelView自适应高度那些事

这里主要介绍在项目中开发中, 遇到的关于tableView自适应高度的问题, 这里主要是针对cell和section header的动态高度设置, 主要涉及到多行文本, 图文混排等自适应高度。

wlaizff的专栏 2098

非常全面的UITabelView学习笔记

UITableView学习笔记                                         作者:一片枫叶                转自: http://www.cnblogs.com/smileEvday/archive/2012/06/28/tableView.html   看TableView的资料其实已经蛮久了,一直想写点儿东西,却总是因为各种原

曼吉克斯 1680

iOS中UITabelView

1.概述 继承自UIScrollView,只能显示一列数据,只能纵向滑动。堪称UIKit里面最复杂的一个控件了,使用起来不算难,但是要用好并不容易。当使用的时候我们必须要考虑到后台数据的设计,tableViewCell的设计和重用以及tableView的效率等问题。 可以表现为Plain和Grouped两种风格。 提供了一系列方法对cell进行编辑(inse...

weixin_30740295的博客 113

表视图1 (UITabelView)

初始化这里的UITableViewStyle有两种格式 一种是UITableViewStylePlain 还有一种是分组格式 UITableViewStyleGroupedUITableView *tableView = [[UITableView alloc]initWithFrame:[UIScreen mainScreen].bounds style:(UITableViewStyleP

酷拼车的博客 339
上一篇: iOS归档与解归档,持久化存储
下一篇: ios7 导航控制器切换影响UIScrollView布局的问题
vaercly
博客等级 码龄12年 46粉丝 151原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值