`
jsntghf
  • 浏览: 2532923 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

QQ风格的列表

    博客分类:
  • iOS
阅读更多

头文件:

 

#import <UIKit/UIKit.h>

@interface QQstyleViewController : UIViewController<UITableViewDelegate, UITableViewDataSource> {
	
	UITableView *table;   
	NSMutableArray *array;   
	BOOL *flag;   
	
}   

@property (nonatomic, retain) UITableView *table;  

@end

 

实现文件:

 

#import "QQstyleViewController.h"

@implementation QQstyleViewController

@synthesize table; 

- (void)viewDidLoad {
	[super viewDidLoad];
	table = [[UITableView alloc] initWithFrame:[UIScreen mainScreen].bounds style:UITableViewStylePlain];   
	table.delegate = self;   
	table.dataSource = self;  
	[self.view addSubview:table]; 
  NSArray *ary1 = [[NSArray alloc] initWithObjects:@"1", @"2", @"3", @"4", nil];
	NSArray *ary2 = [[NSArray alloc] initWithObjects:@"A", @"B", @"C", @"D", @"E", nil];
	NSArray *ary3 = [[NSArray alloc] initWithObjects:@"a", @"b", @"c", @"d", nil];
	array = [[NSMutableArray alloc] initWithObjects:ary1, ary2, ary3, nil];  
	[ary1 release];
	[ary2 release];
	[ary3 release];
	flag = (BOOL *) malloc([array count] * sizeof(BOOL *));   
	memset(flag, NO, sizeof(flag));
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {   
	return [array count];   
}   

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {   
	if (flag[section]) {   
		return [(NSArray *)[array objectAtIndex:section] count];   
	}   
	else {   
		return 0;   
	}   
}   

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath   
{   
	static NSString *CellIdentifier = @"CellIdentifier";   
	UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];   
	if (cell == nil) {   
		cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];   
		cell.selectionStyle = UITableViewCellSelectionStyleNone;   
	}   
	NSString *str = [[array objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];   
	cell.textLabel.text = str;   
	return cell;   
}   

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section   
{   
	UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
	btn.tag = section;   
	[btn addTarget:self action:@selector(headerClicked:) forControlEvents:UIControlEventTouchUpInside];   
	return btn;   
}   

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
	return 30;
}

-(void)headerClicked:(id)sender   
{   
	int sectionIndex = ((UIButton *)sender).tag;   
	flag[sectionIndex] = !flag[sectionIndex];   
	[table reloadData];   
}   

- (void)dealloc {
	free(flag);  
	[array release];
	[table release];  
	[super dealloc];
}

@end

 

示例图:


分享到:
评论

相关推荐

    C#仿qq聊天列表

    7. **图标和资源管理**:QQ风格的聊天列表可能需要使用特定的图标和图像资源,理解如何在C#项目中管理这些资源至关重要。 8. **状态管理**:模拟在线状态,可能需要使用枚举、布尔值或其他数据结构来表示用户的状态...

    易语言模仿qq列表代码和对应模块

    总的来说,这个项目旨在教授易语言用户如何利用该语言特性构建一个具有QQ风格的联系人列表,涵盖了UI设计、数据管理、事件处理等多个方面。通过学习和实践,开发者可以提升自己的易语言编程技能,同时理解如何在实际...

    世上最高仿QQ2012的局域网聊天程序-完美好友列表(绝对经典)

    10.最主要的当然是QQ好友列表啦,网上找了很多仿QQ列表组件,看效果都特别特别差,于是小编自己写了好友列表,高仿度足以以假乱真,采用双向加载更新数据。好友列表自动刷新,查看时也不会闪屏。 11.聊天窗口与QQ...

    Delphi第三方控件(QQ风格)

    "Delphi第三方控件(QQ风格)"就是这样一个资源,它为Delphi开发者提供了一种实现类似QQ风格用户界面的解决方案。 QQ作为一款广受欢迎的即时通讯软件,其界面设计深受用户喜爱。QQ风格的界面通常包括明亮的颜色、...

    delphi 仿qq的好友列表

    Delphi的VCL库提供了丰富的控件和样式设置,开发者可能运用了自定义皮肤、布局管理器等技术来实现QQ风格的界面。 9. **音频和视频处理**: 虽然描述中提到“语音视频(留了个panel可自己加上)”,但具体实现可能...

    XP风格的QQ菜单.rar

    【标题】:“XP风格的QQ菜单.rar”是一个与操作系统界面风格相关的压缩文件,它包含了将QQ聊天软件的菜单设计成Windows XP经典样式的所有资源和设置。Windows XP是微软公司在2001年发布的一款个人计算机操作系统,其...

    QQ界面风格

    在描述中提到的"CGfxOutBarCtrl类",可能是开发者自定义的一个控件类,用于构建QQ风格的侧边栏或者工具栏。CGfxOutBarCtrl可能继承自CWnd或CControlBar等MFC基础类,通过重写OnPaint()、OnEraseBkgnd()等方法,实现...

    VC++ 高仿QQ好友列表窗体界面

    在VC++编程环境中,创建一个高仿QQ好友列表窗体界面是一项挑战性的任务,涉及到Windows API、MFC(Microsoft Foundation Classes)库以及自定义控件的使用。本项目旨在重现QQ2009的经典界面风格,包括窗口布局、颜色...

    QQ列表素材图片

    "QQ列表素材图片"这个压缩包文件显然包含了一系列与QQ相关列表界面设计的图像资源,用于构建iOS应用中的某个部分,可能是聊天列表、好友列表或者消息通知列表等。这些图片素材通常包括背景、图标、按钮、指示器等...

    Qt QQ好友多列表实现demo(抽屉效果)

    在本文中,我们将深入探讨如何使用Qt框架来实现一个类似QQ好友列表的多列抽屉效果。这个示例项目名为"MyQQExample",它利用了Qt中的QToolBox和QToolButton类,来创建一个交互式的用户界面。 首先,我们要理解`...

    android仿qq分组列表效果

    同时,分组标题视图的样式可以通过设置背景、文字颜色等属性来调整,使其与QQ的风格保持一致。 4. 联系人列表项视图: 每个联系人的列表项通常包含姓名、头像等信息。可以使用LinearLayout、RelativeLayout或...

    ExpandableListView仿QQ列表的实现

    8. **自定义样式**:为了使界面更接近QQ的风格,你可以自定义`ExpandableListView`的样式,包括背景颜色、分割线样式、文字颜色等。 9. **交互优化**:考虑添加下拉刷新和上拉加载更多功能,提升用户体验。 这个...

    仿QQ多级列表框源码.zip

    在Android开发中,创建一个仿QQ多级列表框是一项常见的需求,这通常涉及到自定义控件、数据结构和用户交互的设计。"仿QQ多级列表框源码.zip"提供的资源包含了一个实现此类功能的示例代码,名为"ExListView"。这个...

    易语言自绘QQ列表框源码-易语言

    获取图标句柄是为了在列表框中显示相应的图标,这可能是实现QQ风格列表框的关键部分,因为QQ聊天窗口中的联系人通常会显示他们的头像。 在易语言中,实现自绘列表框可能涉及以下几个核心知识点: 1. **窗口部件...

    BBSxp论坛 QQ三国风格

    【标题】:“BBSxp论坛 QQ三国风格” 这个标题揭示了我们要讨论的主题——一个基于BBSxp论坛系统并采用QQ三国主题设计的网页模板。BBSxp是一款流行的论坛软件,它提供了一个平台让用户进行交流、分享信息和讨论各种...

    QQ 界面风格 自定义控件

    6. **自定义事件和属性**:为了实现QQ特有的功能,例如好友列表的拖放操作、聊天窗口的滚动条、消息发送反馈等,开发者需要定义和处理一系列自定义事件,并提供相应的属性供外部访问和设置。 7. **布局管理**:QQ...

    ExpandableListView仿QQ好友列表

    在Android开发中,`ExpandableListView`是一种常用的控件,它允许...通过以上步骤,你可以实现一个具有QQ好友列表风格的`ExpandableListView`。记得在开发过程中充分测试,确保在不同设备和Android版本上都能正常工作。

    手机仿QQ风格的页面效果

    在Android应用开发中,"手机仿QQ风格的页面效果"是一项常见的需求,旨在提供与QQ应用类似的用户体验。QQ作为一款广泛使用的即时通讯软件,其界面设计简洁、功能丰富且易于操作,因此许多开发者会尝试模仿其设计元素...

    QQ风格的UITableView

    QQ风格的UITableView是一种在iOS应用开发中常见的定制化表格视图,它借鉴了QQ应用程序的界面设计元素,为用户提供了一种独特的交互体验。这个主题主要涉及到iOS开发中的UITableView控件,自定义UITableViewCell,...

    qq风格for leadbbs3.14

    QQ风格 for LeadBBS 3.14 是一个专门针对LeadBBS 3.14论坛系统的主题皮肤设计。这个风格赋予论坛一种独特的QQ风格,旨在提升用户界面的视觉吸引力和用户体验,使得论坛看起来更加亲切和熟悉,尤其对喜欢QQ界面的用户...

Global site tag (gtag.js) - Google Analytics