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

QQ - iPhone 风格的好友列表实现

QQ 
阅读更多
//
//  QQstyleTableViewViewController.h
//  QQstyleTableView
//
//  Created by xhan on 9/22/09.
//  Copyright In-Blue 2009. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface QQstyleTableViewViewController : UIViewController < UITableViewDelegate , UITableViewDataSource , UIScrollViewDelegate > {
	UITableView* _tableView;
	NSMutableArray* _array;
	BOOL *flag;
}

@property (nonatomic, retain) UITableView *tableView;

- (int)numberOfRowsInSection:(NSInteger)section;

@end


 
//
//  QQstyleTableViewViewController.m
//  QQstyleTableView
//
//  Created by xhan on 9/22/09.
//  Copyright In-Blue 2009. All rights reserved.
//

#import "QQstyleTableViewViewController.h"

@implementation QQstyleTableViewViewController

@synthesize tableView = _tableView;

////////////////////////////////////////////////////////////////////////////////////////
// NSObject 
- (void)dealloc {
	free(flag);
    [_tableView release], _tableView = nil;
    [super dealloc];
}

- (void)viewDidLoad {
    [super viewDidLoad];
	_tableView = [[UITableView alloc] initWithFrame:[UIScreen mainScreen].bounds  style:UITableViewStylePlain];
	_tableView.delegate = self;
	_tableView.dataSource = self;

	[self.view addSubview:_tableView];
	_array = [[NSMutableArray alloc] initWithObjects:[[NSArray alloc] initWithObjects:@"AA",@"BB",@"CC",@"DD",nil],
													 [[NSArray alloc] initWithObjects:@"EE",@"FF",@"GG",@"XX",@"ZZ",nil],	
													 [[NSArray alloc] initWithObjects:@"JJ",@"VV",@"EE",@"NN",nil],
													 nil];
	flag = (BOOL*)malloc([_array count]*sizeof(BOOL*));
	memset(flag, NO, sizeof(flag));

}

////////////////////////////////////////////////////////////////////////////////////////
// 
#pragma mark Table view  delegate methods

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



- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
	return [self numberOfRowsInSection:section];
}

- (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 *abtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
//	abtn.frame = CGRectMake(0, 0, 200, 48);
//	abtn.titleLabel.text = @"HEADER";
	abtn.tag = section;
	[abtn addTarget:self action:@selector(headerClicked:) forControlEvents:UIControlEventTouchUpInside];
	return abtn;
}

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

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

@end

分享到:
评论
5 楼 cbc009 2009-09-26  
没图没真相
4 楼 哇你长得真高 2009-09-24  
介个。。。
截图出来应该是这样的:一个tableview的列表,每行一个名字,与球球无关。。。
标题党
3 楼 showtime520 2009-09-24  
无图五真相啊,期待
2 楼 tuti 2009-09-23  
是啊,这兄弟当大家都是IPHONE啊,能直接运行程序啊。给个截图啊
1 楼 lordhong 2009-09-23  
呵呵, 哥们来个截图看下?

相关推荐

    iphone QQ在线图标制作

    在IT行业中,制作和使用个性化的在线图标是许多用户尤其是iPhone用户热衷的事情,QQ作为一款流行的即时通讯软件,其在线图标是用户展示自我风格的一种方式。本教程将重点讲解如何在iPhone上制作QQ在线图标,并通过...

    iPhoneQQ在线

    标题“iPhoneQQ在线”指的是在苹果公司的iPhone设备上使用腾讯QQ这一即时通讯软件进行在线交流的功能。QQ作为中国最流行的社交应用之一,提供了多种平台的支持,包括iOS操作系统。以下是关于在iPhone上使用QQ的相关...

    iPhone手机QQ空间触屏版体验.docx

    在界面设计方面,触屏版充分考虑了iPhone用户的审美需求,对图标、阴影效果和输入框等进行了细致优化,使其与iPhone的华丽界面风格相得益彰。同时,保持了iPhone一贯的简约理念,确保用户在享受美观的同时,也能体验...

    QQ2021来了.docx

    对于Android版和iPhone版的差异,iPhone版QQ2021在UI上进行了全新改版,以适应iOS7的设计风格,不过由于当时iOS系统尚未完美越狱,这一更新在实际使用中的效果可能会受限。尽管如此,iPhone版仍然包含了与Android版...

    仿iphoneListView

    【标题】"仿iPhoneListView" 是一个Android开发中的实践项目,旨在实现类似iPhone风格的可扩展列表视图。这种列表视图通常具有清晰的层级结构,可以方便地展示多级数据,例如联系人分组或者文件目录结构。在Android...

    Phone_QQ头像生成器

    同时,生成器还支持动态头像的制作,通过组合不同的动画元素,让你的头像在好友列表中脱颖而出。 安全性也是Phone_QQ头像生成器重视的一环。所有的头像生成过程都在本地完成,用户的个人信息和创作不会上传至云端,...

    【iPhoneQQ音乐3.0】设计总结

    ### iPhone QQ音乐3.0设计总结 #### 一、项目背景与目标 随着移动互联网的快速发展,用户对于高质量音乐服务的需求日益增长。QQ音乐作为国内领先的数字音乐平台,一直在不断优化用户体验,提升服务质量。此次推出...

    iPhone说说器

    《iPhone说说器》是一款专为苹果iPhone用户设计的应用程序,旨在帮助用户更方便地发布和管理他们在社交平台上的状态更新,通常被称为“说说”或“动态”。在这个数字化时代,社交媒体成为了人们分享生活、表达情感的...

    AndroidWorkspace

    8. **QQDemo**:类似QQ的示例应用,可能包含聊天、好友列表、消息推送等功能。这个项目可能深入到了Android的多线程处理、消息队列(如Handler和Looper)以及实时通信技术。 9. **myFloatWindow**:浮动窗口项目,...

    JAVA上百实例源码以及开源项目源代码

    此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这...

Global site tag (gtag.js) - Google Analytics