头文件:
#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
示例图:
分享到:
相关推荐
7. **图标和资源管理**:QQ风格的聊天列表可能需要使用特定的图标和图像资源,理解如何在C#项目中管理这些资源至关重要。 8. **状态管理**:模拟在线状态,可能需要使用枚举、布尔值或其他数据结构来表示用户的状态...
总的来说,这个项目旨在教授易语言用户如何利用该语言特性构建一个具有QQ风格的联系人列表,涵盖了UI设计、数据管理、事件处理等多个方面。通过学习和实践,开发者可以提升自己的易语言编程技能,同时理解如何在实际...
10.最主要的当然是QQ好友列表啦,网上找了很多仿QQ列表组件,看效果都特别特别差,于是小编自己写了好友列表,高仿度足以以假乱真,采用双向加载更新数据。好友列表自动刷新,查看时也不会闪屏。 11.聊天窗口与QQ...
"Delphi第三方控件(QQ风格)"就是这样一个资源,它为Delphi开发者提供了一种实现类似QQ风格用户界面的解决方案。 QQ作为一款广受欢迎的即时通讯软件,其界面设计深受用户喜爱。QQ风格的界面通常包括明亮的颜色、...
Delphi的VCL库提供了丰富的控件和样式设置,开发者可能运用了自定义皮肤、布局管理器等技术来实现QQ风格的界面。 9. **音频和视频处理**: 虽然描述中提到“语音视频(留了个panel可自己加上)”,但具体实现可能...
【标题】:“XP风格的QQ菜单.rar”是一个与操作系统界面风格相关的压缩文件,它包含了将QQ聊天软件的菜单设计成Windows XP经典样式的所有资源和设置。Windows XP是微软公司在2001年发布的一款个人计算机操作系统,其...
在描述中提到的"CGfxOutBarCtrl类",可能是开发者自定义的一个控件类,用于构建QQ风格的侧边栏或者工具栏。CGfxOutBarCtrl可能继承自CWnd或CControlBar等MFC基础类,通过重写OnPaint()、OnEraseBkgnd()等方法,实现...
在VC++编程环境中,创建一个高仿QQ好友列表窗体界面是一项挑战性的任务,涉及到Windows API、MFC(Microsoft Foundation Classes)库以及自定义控件的使用。本项目旨在重现QQ2009的经典界面风格,包括窗口布局、颜色...
"QQ列表素材图片"这个压缩包文件显然包含了一系列与QQ相关列表界面设计的图像资源,用于构建iOS应用中的某个部分,可能是聊天列表、好友列表或者消息通知列表等。这些图片素材通常包括背景、图标、按钮、指示器等...
在本文中,我们将深入探讨如何使用Qt框架来实现一个类似QQ好友列表的多列抽屉效果。这个示例项目名为"MyQQExample",它利用了Qt中的QToolBox和QToolButton类,来创建一个交互式的用户界面。 首先,我们要理解`...
同时,分组标题视图的样式可以通过设置背景、文字颜色等属性来调整,使其与QQ的风格保持一致。 4. 联系人列表项视图: 每个联系人的列表项通常包含姓名、头像等信息。可以使用LinearLayout、RelativeLayout或...
8. **自定义样式**:为了使界面更接近QQ的风格,你可以自定义`ExpandableListView`的样式,包括背景颜色、分割线样式、文字颜色等。 9. **交互优化**:考虑添加下拉刷新和上拉加载更多功能,提升用户体验。 这个...
在Android开发中,创建一个仿QQ多级列表框是一项常见的需求,这通常涉及到自定义控件、数据结构和用户交互的设计。"仿QQ多级列表框源码.zip"提供的资源包含了一个实现此类功能的示例代码,名为"ExListView"。这个...
获取图标句柄是为了在列表框中显示相应的图标,这可能是实现QQ风格列表框的关键部分,因为QQ聊天窗口中的联系人通常会显示他们的头像。 在易语言中,实现自绘列表框可能涉及以下几个核心知识点: 1. **窗口部件...
【标题】:“BBSxp论坛 QQ三国风格” 这个标题揭示了我们要讨论的主题——一个基于BBSxp论坛系统并采用QQ三国主题设计的网页模板。BBSxp是一款流行的论坛软件,它提供了一个平台让用户进行交流、分享信息和讨论各种...
6. **自定义事件和属性**:为了实现QQ特有的功能,例如好友列表的拖放操作、聊天窗口的滚动条、消息发送反馈等,开发者需要定义和处理一系列自定义事件,并提供相应的属性供外部访问和设置。 7. **布局管理**:QQ...
在Android开发中,`ExpandableListView`是一种常用的控件,它允许...通过以上步骤,你可以实现一个具有QQ好友列表风格的`ExpandableListView`。记得在开发过程中充分测试,确保在不同设备和Android版本上都能正常工作。
在Android应用开发中,"手机仿QQ风格的页面效果"是一项常见的需求,旨在提供与QQ应用类似的用户体验。QQ作为一款广泛使用的即时通讯软件,其界面设计简洁、功能丰富且易于操作,因此许多开发者会尝试模仿其设计元素...
QQ风格的UITableView是一种在iOS应用开发中常见的定制化表格视图,它借鉴了QQ应用程序的界面设计元素,为用户提供了一种独特的交互体验。这个主题主要涉及到iOS开发中的UITableView控件,自定义UITableViewCell,...
QQ风格 for LeadBBS 3.14 是一个专门针对LeadBBS 3.14论坛系统的主题皮肤设计。这个风格赋予论坛一种独特的QQ风格,旨在提升用户界面的视觉吸引力和用户体验,使得论坛看起来更加亲切和熟悉,尤其对喜欢QQ界面的用户...