代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
ObjC
】
自定义UITableView折叠效果
作者:
佳航
/ 发布于
2014/11/15
/
602
类似于QQ的那种折叠效果。只刷新点击的折叠行。不加载所有数据源。
// // MyTableViewController.m // TableSectionStatistics // // Created by rlf on 12-11-23. // Copyright (c) 2012年 __rlf__. All rights reserved. // #import "MyTableViewController.h" #define originalHeight 25.0f #define newHeight 85.0f #define isOpen @"85.0f" @interface MyTableViewController () @end @implementation MyTableViewController { NSMutableDictionary *dicClicked; NSInteger count; CGFloat mHeight; NSInteger sectionIndex; } - (id)initWithStyle:(UITableViewStyle)style { self = [super initWithStyle:style]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; count = 0; mHeight = originalHeight; sectionIndex = 0; dicClicked = [NSMutableDictionary dictionaryWithCapacity:3]; } - (void)viewDidUnload { [super viewDidUnload]; // Release any retained subviews of the main view. // e.g. self.myOutlet = nil; } #pragma mark - Table view data source - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { // Return the number of sections. return 50; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return 2; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *contentIndentifer = @"Container"; if (indexPath.row == 0) { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:contentIndentifer]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:contentIndentifer]; } NSString *statisticsContent = [[NSString alloc] initWithString:@"rlf:岁月流芳,花开几度,走在岁月里,醉在流香里,总在时光里辗转徘徊。花开几许,落花几度,岁月寒香,飘进谁的诗行,一抹幽香,掺入几许愁伤,流年似花,春来秋往,睁开迷离的双眼,回首张望,随风的尘烟荡漾着迷忙,昨日的光阴已逝去,留下无尽的回忆让人留恋与追忆"]; cell.textLabel.font = [UIFont systemFontOfSize:12.0f]; cell.textLabel.text = statisticsContent; cell.textLabel.textColor = [UIColor brownColor] ; cell.textLabel.opaque = NO; // 选中Opaque表示视图后面的任何内容都不应该绘制 cell.textLabel.numberOfLines = 8; cell.selectionStyle = UITableViewCellSelectionStyleNone; return cell; } static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } cell.imageView.image = [UIImage imageNamed:@"ic_milestone_heart.png"]; cell.textLabel.text = [NSString stringWithFormat:@"%d",count]; count++; return cell; } //Section的标题栏高度 -(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { if (section == 0) return 46; else return 30.0f; } -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { CGRect headerFrame = CGRectMake(0, 0, 300, 30); CGFloat y = 2; if (section == 0) { headerFrame = CGRectMake(0, 0, 300, 100); y = 18; } UIView *headerView = [[UIView alloc] initWithFrame:headerFrame]; UILabel *dateLabel=[[UILabel alloc] initWithFrame:CGRectMake(20, y, 240, 24)];//日期标签 dateLabel.font=[UIFont boldSystemFontOfSize:16.0f]; dateLabel.textColor = [UIColor darkGrayColor]; dateLabel.backgroundColor=[UIColor clearColor]; UILabel *ageLabel=[[UILabel alloc] initWithFrame:CGRectMake(216, y, 88, 24)];//年龄标签 ageLabel.font=[UIFont systemFontOfSize:14.0]; ageLabel.textAlignment=UITextAlignmentRight; ageLabel.textColor = [UIColor darkGrayColor]; ageLabel.backgroundColor=[UIColor clearColor]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; dateFormatter.dateFormat = @"MM dd,yyyy"; dateLabel.text = [NSString stringWithFormat:@"%@",[dateFormatter stringFromDate:[NSDate date]]]; ageLabel.text = @"1岁 2天"; [headerView addSubview:dateLabel]; [headerView addSubview:ageLabel]; return headerView; } #pragma mark - Table view delegate - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.row == 0) { UITableViewCell *targetCell = [tableView cellForRowAtIndexPath:indexPath]; if (targetCell.frame.size.height == originalHeight+1){ [dicClicked setObject:isOpen forKey:indexPath]; } else{ [dicClicked removeObjectForKey:indexPath]; } [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; } NSLog(@"indexPath=%@",indexPath); NSLog(@"dicClicked=%@",dicClicked); } -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.row == 0) { if ([[dicClicked objectForKey:indexPath] isEqualToString: isOpen]) return [[dicClicked objectForKey:indexPath] floatValue]; else return originalHeight; } else { return 45.0f; } } @end
试试其它关键字
UITableView
同语言下
.
根据生日计算星座
.
精简的实现一个内存池
.
iOS索引搜索核心代码
.
iOS 搜索框
.
文件操作
.
UIWebView 加载本地网页
.
取消导航条对视图的影响
.
利用终端显示 隐藏文件
.
更改导航条背景颜色
.
iOS 字体斜体
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
佳航
贡献的其它代码
(
28
)
.
自定义UITableView折叠效果
.
分组列表中的cell的子视图tag标记,如label和button
.
设置 UITableViewCell 与导航条间距
.
自定义UITableViewCell上的delete按钮
.
设置tableview的cell颜色
.
ios7 UITableView底线右移
.
设置tableViewcell动态高度
.
改变分组列表之间的间距
.
刷新某行cell的方法
.
隐藏或者显示静态栏
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3