- 浏览: 2544772 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
jsntghf:
peio 写道这个怎么运行?Ruby On Rails的环境搭 ...
多文件上传之uploadify -
peio:
这个怎么运行?
多文件上传之uploadify -
往事如烟1:
我的项目是自己init了一个原始的project,之后将ver ...
React Native热部署之CodePush -
jsntghf:
往事如烟1 写道我按照你的说明进行,发现app退出之后,在进入 ...
React Native热部署之CodePush -
往事如烟1:
我按照你的说明进行,发现app退出之后,在进入不正确,请问是什 ...
React Native热部署之CodePush
头文件:
#import <UIKit/UIKit.h> @interface TableMenuViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> { NSMutableArray *itemArray; NSMutableArray *openItemArray; UITableView *menuTable; } @property (nonatomic, retain) NSMutableArray *itemArray; @property (nonatomic, retain) NSMutableArray *openItemArray; @property (nonatomic, retain) IBOutlet UITableView *menuTable; - (void)readPlistToArray; @end
实现文件:
#import "TableMenuViewController.h" @implementation TableMenuViewController @synthesize itemArray, openItemArray, menuTable; - (void)viewDidLoad { [super viewDidLoad]; self.itemArray = [NSMutableArray arrayWithCapacity:0]; self.openItemArray = [NSMutableArray arrayWithCapacity:0]; [self readPlistToArray]; } - (void)readPlistToArray { if ([self.itemArray count]) { [self.itemArray removeAllObjects]; } NSString *path = [[NSBundle mainBundle] pathForResource:@"MenuOrder" ofType:@"plist"]; NSArray *array = [NSArray arrayWithContentsOfFile:path]; for (int i = 0; i < [array count]; i++) { NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithCapacity:0]; [dic setObject:@"0" forKey:@"level"]; [dic setObject:[[array objectAtIndex:i] objectAtIndex:0] forKey:@"name"]; [self.itemArray addObject:dic]; for (int j = 0; j < [self.openItemArray count]; j++) { if ([[[self.openItemArray objectAtIndex:j] objectForKey:@"name"] isEqualToString:[[array objectAtIndex:i] objectAtIndex:0]]) { NSArray *ary = [array objectAtIndex:i]; for (int k = 1; k < [ary count]; k++) { NSMutableDictionary *menuDic = [NSMutableDictionary dictionaryWithCapacity:0]; [menuDic setObject:@"2" forKey:@"level"]; [menuDic setObject:[ary objectAtIndex:k] forKey:@"name"]; [self.itemArray addObject:menuDic]; } } } } } #pragma mark - #pragma mark Table view data source - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [self.itemArray count]; } - (NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath { return [[[self.itemArray objectAtIndex:[indexPath row]] objectForKey:@"level"] intValue]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; } NSDictionary *dic = [self.itemArray objectAtIndex:[indexPath row]]; if(![[dic objectForKey:@"level"] intValue]) { cell.selectionStyle = UITableViewCellSelectionStyleNone; UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"menubackgroud.png"]]; [cell setBackgroundView:imageView]; } else { cell.selectionStyle = UITableViewCellSelectionStyleBlue; UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"itembackgroud.png"]]; [cell setBackgroundView:imageView]; } cell.textLabel.text = [dic objectForKey:@"name"]; return cell; } #pragma mark - #pragma mark Table view delegate - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSDictionary *dic = [self.itemArray objectAtIndex:[indexPath row]]; NSString *name = [dic objectForKey:@"name"]; if(![[dic objectForKey:@"level"] intValue]) { for (int i = 0; i < [self.openItemArray count]; i++) { if ([[[self.openItemArray objectAtIndex:i] objectForKey:@"name"] isEqualToString:name]) { [self.openItemArray removeObjectAtIndex:i]; [self readPlistToArray]; [self.menuTable reloadData]; return; } } [self.openItemArray addObject:dic]; [self readPlistToArray]; [self.menuTable reloadData]; } else { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:(@"%@", name) delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil]; [alert show]; [alert release]; } } - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 44; } - (void)dealloc { [itemArray release]; [openItemArray release]; [menuTable release]; [super dealloc]; } @end
示例图:
- MenuOrder.rar (438 Bytes)
- 下载次数: 83
评论
3 楼
nothinglhw
2013-06-27
jsntghf 写道
nothinglhw 写道
楼主,求本项目的图片文档。。。
什么图片文档
背景图片~~
2 楼
jsntghf
2013-01-29
nothinglhw 写道
楼主,求本项目的图片文档。。。
什么图片文档
1 楼
nothinglhw
2013-01-29
楼主,求本项目的图片文档。。。
发表评论
-
Error watching file for changes: EMFILE
2016-12-15 11:57 1309执行npm start后报错: Error watc ... -
CocoaPods升级1.1.1报错
2016-12-15 08:39 799ERROR: While executing gem .. ... -
Visual Studio Code运行React Native报错
2016-06-13 09:43 1622React Native:0.27.2 React:15 ... -
React Native 0.27.2编译报错this._nativeModule.addListener is not a function
2016-06-12 15:21 3867React Native:0.27.2 React:15 ... -
Unable to resolve module ReactDefaultPerf from
2016-06-02 13:04 2792package.json信息如下: "reac ... -
React Native 0.26.2编译报错Undefined symbols for architecture x86_64
2016-05-26 11:15 2031React Native:0.26.2 React:15. ... -
Failed to update auto layout status: Failed to load designables from path (null)
2016-04-05 22:11 1726确保CocoaPods是0.36.1以上版本,然后在podf ... -
集成微信支付出现Undefined symbols for architecture x86_64错误
2016-03-21 13:22 1755Undefined symbols for architec ... -
React Native热部署之CodePush
2016-01-10 22:27 6255本文使用的环境是Mac OS 10.11.1、Xcode ... -
浅谈React Native中的FlexBox布局
2015-11-17 18:38 4312React Native通过一个基于FlexBox的布局引 ... -
React Native之构建一个简单的列表页
2015-10-23 14:45 2170本文中我们将创建一个简单的电影应用,这个应用将从Rotten ... -
React Native之环境搭建
2015-10-20 16:30 1451本文使用的环境是Mac O ... -
获取图片属性的方法
2015-10-18 20:43 3150很多时候我们需要获 ... -
NSCache的下标用法
2015-09-18 00:19 1219NSCache类和NSDictionary类很相似,也提供 ... -
如何给category添加属性
2015-08-16 10:41 695主要是使用了runtime中的associative机制。 ... -
UITableView的两种重用Cell方法的区别
2015-08-10 13:07 16160UITableView中有两种重用Cell的方法: - ... -
SDImageCache.m报错Unused variable 'fileName'
2015-08-04 21:56 1180GCC手册中的相关解释: unused:This att ... -
Swift调用Objective-C
2015-07-13 23:33 1233Swift调用Objective-C需要一个名为<工程 ... -
使用GCD实现倒计时
2015-07-24 21:47 1090__block int timeout = 60; // ... -
导航栏加分割线的实现
2015-07-01 22:00 1772self.view.backgroundColor = [U ...
相关推荐
可伸缩标题视图+水平可滑动选项卡视图 用法 运行示例项目; 克隆存储库,然后首先从Example目录运行pod install 。 屏幕截图 可伸缩页眉 可滑动的标签 安装 AXStretchableHeaderTabViewController可通过。 要安装它...
HEVC标准的研发始于H.264/AVC标准化完成之后,该标准旨在为工作室、多视图视频和可伸缩应用等不同服务和市场提供扩展标准。H.264/AVC的可伸缩扩展是这一努力的重要成果之一。其目标在于高效地支持多种视频质量、...
"一个支持可伸缩头部的布局"是一种创新的UI设计,它允许用户在滚动内容时头部布局能够动态改变大小,提供了一种引人注目的交互体验。这种布局常用于如电商应用的商品详情页,顶部展示商品图片或信息,当向下滚动时会...
在Android开发中,ListView是一种常用的组件,用于展示可滚动的列表数据。然而,当需要实现更复杂的交互,比如二级展开、列表项的伸缩效果时,单纯的ListView就显得力不从心了。这时,我们需要引入...
"iOS展示视图移动的简单动画效果"这一主题聚焦于如何在iOS应用中实现视图的动态伸缩和移动,为用户提供更加直观且吸引人的交互体验。 首先,我们来探讨一下iOS中的动画基础。iOS的动画主要是通过Core Animation框架...
`ListView+头部可伸缩+item可分组`的主题涉及到对ListView的高级定制,以实现更丰富的交互效果和数据组织方式。这里我们将深入探讨如何实现这样一个功能强大的ListView。 首先,"头部可伸缩"是指ListView的顶部部分...
为了实现“可伸缩”的功能,我们需要重写`LinearLayout`的一些关键方法,如`onMeasure()`和`onLayout()`,这两个方法在确定视图大小和位置时起着核心作用。 1. **自定义ViewGroup**: 创建一个新的Java类,继承自`...
自定义头部可伸缩的`ListView`是一个结合了Android视图系统、触摸事件处理、动画和滚动行为的综合案例,对于深化对Android开发的理解和提升动手能力非常有帮助。通过这个项目,开发者不仅可以学习到如何扩展Android...
UITableView是iOS SDK中的一个关键组件,它用于显示一列可滚动的数据项,通常用于构建列表或表格视图。每个数据项对应一个UITableViewCell,可以自定义其样式和内容。 在实现“仿qqTableview伸缩展示”时,我们需要...
分区视图可以是可更新的,也就是说,用户可以对视图进行插入、更新和删除操作,这些操作会自动传播到相应的分区表中。同时,也可以创建只读的分区视图,作为基础表的不可修改副本,用于数据展示或报表生成。 创建...
在Android开发中,创建可伸缩的控件是一项常见的需求,尤其在设计用户界面时,为了提供更好的用户体验,开发者往往需要实现自定义的动画效果。本文将深入探讨如何基于API 17创建一个可伸缩的Android控件,并讨论如何...
2. **用户界面设计**:可伸缩的日历视图是应用的一大亮点,这需要开发者熟练掌握Android的布局管理器,如LinearLayout、RelativeLayout、GridLayoutManager等,以及自定义ViewGroup的能力。同时,滑动效果和缩放动画...
在C# 2.0版本中,开发人员经常会面临创建具有可伸缩界面的应用程序的需求。这样的界面能够根据用户屏幕的大小和分辨率自动调整布局,提供良好的用户体验。本压缩包中的"the365WinApp"文件可能包含了一个示例项目,...
本教程将深入探讨如何创建一个可伸缩的UITableView,模仿QQ好友列表的功能。这样的设计可以提高用户体验,因为用户可以通过点击单元格来展开或收起子列表,使得大量信息的展示更加有序。 首先,我们需要了解...
6. **3D图纸**:在3D建模中,图纸通常包含多个视图,如前视图、侧视图和俯视图,以及细节特写,帮助制作者理解物体的各个角度和组成部分。图纸可能还包括颜色、材质和纹理的信息。 7. **资源应用**:这些伸缩剑的3D...
本项目标题为“自定义安卓时间轴,线可伸缩”,这意味着开发者构建了一个可以动态调整长度的时间轴组件,以适应不同长度的内容。这个特性使得时间轴能够有效地展示任何长度的信息,而不会因为内容过多导致布局拥挤...
在IT行业中,创建类似QQ面板或微软Outlook界面的可伸缩控件是一项常见的需求,尤其是在开发用户界面(UI)时。这样的控件通常被称为OutlookBar或Docking Bar,它们提供了一种灵活的方式来组织和展示应用程序的功能,...
在Android开发中,创建一个可伸缩式悬浮窗是一项实用且有趣的任务,它能为用户提供更灵活的操作体验。本文将详细讲解如何利用`WindowManager`实现这样的功能,并探讨相关技术要点。 首先,我们要理解`WindowManager...
在Qt框架中,动态伸缩效果通常涉及到图形视图(QGraphicsView)和动画框架(QPropertyAnimation)的使用,这些功能使得用户界面元素能够优雅地改变大小,从而增加交互性和视觉吸引力。以下是对"qt 动态伸缩效果实例...