- 浏览: 158382 次
- 性别:
- 来自: 海口
文章分类
最新评论
-
alienxy:
望楼主能提供源码参考,感激不尽。1291365391@qq.c ...
对myflow WEB版工作流设计器进行改进-增加删除功能 -
oushaomeng2011:
楼主能否发一份源码呢,现在项目需要参考类似流程图设计,希望能提 ...
对myflow WEB版工作流设计器进行改进-增加删除功能 -
tuohuang0303:
楼主能否发一份源码呢,现在项目需要参考类似流程图设计,希望能提 ...
对myflow WEB版工作流设计器进行改进-增加删除功能 -
欧阳陈曦:
楼主能不能提供下代码万分感谢。753095374@qq.com ...
对myflow WEB版工作流设计器进行改进-增加删除功能 -
huan890308:
亲 能不能把源码发一份啊 拜谢拜谢!402197729@qq ...
对myflow WEB版工作流设计器进行改进-增加删除功能
//调用方式 Ajax *ajax = [[Ajax alloc]Ajax:urlStr target:self didFinish:@selector(showData:) isAllValues:NO valueForKey:@"list" showProgressBar:YES]; [ajax release]; //异步回调方法 -(void) showData:(NSArray*)data{ NSLog(@"data:%@",data); }
// // Ajax.h // live // // Created by xjj xjj on 11-7-28. // Copyright 2011 新境界. All rights reserved. // #import <Foundation/Foundation.h> #import "UIProgressBar.h" @interface Ajax : NSObject { } @property(nonatomic,assign) id target; @property(nonatomic)SEL didFinish; @property(nonatomic,retain) NSMutableData *buf; @property(nonatomic,retain) NSURLConnection *connection; @property(nonatomic,assign) BOOL isAllValues; @property(nonatomic,assign) NSString* valueForKey; @property(nonatomic,assign) BOOL isText; @property(nonatomic,assign) NSString *urlStr; @property(nonatomic,retain) UIProgressBar *progressBar; @property(nonatomic,assign) long contentLength; @property(nonatomic,assign) BOOL showProgressBar; -(void)start; -(void)hiddenProgreesBar; /*! @method Ajax:target:didFinish:isAllValues:valueForKey: @discussion 异步加载某个节点数据(JSON格式) @param _urlStr 网络数据URL @param _target 调用者 @param _didFinish 数据加载完毕后通知动作 @param _isAllValues 是否返回所有数据 NO or YES @param _valueForKey 加载某个节点数据 @result 初始化Ajax实例,并异步执行 */ -(id) Ajax:(NSString*)_urlStr target:(id)_target didFinish:(SEL)_didFinish isAllValues:(BOOL)_isAllValues valueForKey:(NSString *)_valueForKey; /*! @method Ajax:target:didFinish: @discussion 异步加数据(文件本格式)所有文本数据 @param _urlStr 网络数据URL @param _target 调用者 @param _didFinish 数据加载完毕后通知动作 @result 初始化Ajax实例,并异步执行 */ -(id) Ajax:(NSString*)_urlStr target:(id)_target didFinish:(SEL)_didFinish; /*! @method Ajax:target:didFinish:isAllValues:valueForKey:showProgressBar: @discussion 异步加载某个节点数据(JSON格式) @param _urlStr 网络数据URL @param _target 调用者 @param _didFinish 数据加载完毕后通知动作 @param _isAllValues 是否返回所有数据 NO or YES @param _valueForKey 加载某个节点数据 @param _showProgressBar 是否显示进度条 NO or YES @result 初始化Ajax实例,并异步执行 */ -(id) Ajax:(NSString*)_urlStr target:(id)_target didFinish:(SEL)_didFinish isAllValues:(BOOL)_isAllValues valueForKey:(NSString *)_valueForKey showProgressBar:(BOOL)_showProgressBar; /*! @method Ajax:target:didFinish:showProgressBar @discussion 异步加数据(文件本格式)所有文本数据 @param _urlStr 网络数据URL @param _target 调用者 @param _didFinish 数据加载完毕后通知动作 @param _showProgressBar 是否显示进度条 NO or YES @result 初始化Ajax实例,并异步执行 */ -(id) Ajax:(NSString*)_urlStr target:(id)_target didFinish:(SEL)_didFinish showProgressBar:(BOOL)_showProgressBar; @end
实现
// // Ajax.m // live // // Created by xjj xjj on 11-7-28. // Copyright 2011 新境界. All rights reserved. // #import "Ajax.h" #import "JSONParser.h" #import "UIProgressBar.h" @implementation Ajax @synthesize target,didFinish; @synthesize buf; @synthesize connection; @synthesize isAllValues,valueForKey; @synthesize isText; @synthesize urlStr; @synthesize progressBar; @synthesize contentLength; @synthesize showProgressBar; -(id) Ajax:(NSString*)_urlStr target:(id)_target didFinish:(SEL)_didFinish showProgressBar:(BOOL)_showProgressBar{ if(self){ self.showProgressBar = _showProgressBar; self.urlStr = _urlStr; self.isText = YES; self.target = _target; self.didFinish = _didFinish; [self start]; } return self; } -(id) Ajax:(NSString*)_urlStr target:(id)_target didFinish:(SEL)_didFinish{ /*self = [super init]; if(self){ self.showProgressBar = YES; self.urlStr = _urlStr; self.isText = YES; self.target = _target; self.didFinish = _didFinish; [self start]; } return self;*/ return [self Ajax:_urlStr target:_target didFinish:_didFinish showProgressBar:YES]; } -(id) Ajax:(NSString *)_urlStr target:(id)_target didFinish:(SEL)_didFinish isAllValues:(BOOL)_isAllValues valueForKey:(NSString *)_valueForKey showProgressBar:(BOOL)_showProgressBar{ self = [super init]; if(self){ self.showProgressBar = _showProgressBar; self.urlStr = _urlStr; self.isAllValues = _isAllValues; self.valueForKey = _valueForKey; self.target = _target; self.didFinish = _didFinish; [self start]; } return self; } -(id) Ajax:(NSString *)_urlStr target:(id)_target didFinish:(SEL)_didFinish isAllValues:(BOOL)_isAllValues valueForKey:(NSString *)_valueForKey{ return [self Ajax:_urlStr target:_target didFinish:_didFinish isAllValues:_isAllValues valueForKey:_valueForKey showProgressBar:YES]; } -(void)start{ if(connection==nil){ [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; buf = [[NSMutableData alloc] initWithLength:0]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc]init]; [request setURL:[NSURL URLWithString:urlStr]]; [request setHTTPMethod:@"GET"]; connection = [[NSURLConnection alloc]initWithRequest:request delegate:self]; if([target isKindOfClass:[UIViewController class]]==YES&&showProgressBar==YES){ UIViewController *viewController = (UIViewController*)target; progressBar = [[UIProgressBar alloc] initWithFrame:CGRectMake(0, viewController.view.frame.size.height - 10,viewController.view.frame.size.width, 10)]; progressBar.minValue = 0; [progressBar setLineColor:[UIColor blackColor]]; [progressBar setProgressColor:[UIColor redColor]]; //[progressBar setProgressColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"3.png"]]]; [progressBar setProgressRemainingColor:[UIColor greenColor]]; [viewController.view addSubview:progressBar]; } [request release]; } } //收到响应时 - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{ if(progressBar!=nil) progressBar.maxValue = response.expectedContentLength; } //接收数据 -(void)connection:(NSURLConnection *)aConn didReceiveData:(NSData *)data{ [buf appendData:data]; if(progressBar!=nil) progressBar.currentValue += [data length]; } //加载失败 -(void)connection:(NSURLConnection*)aConn didFailWithError:(NSError*)error{ NSLog(@"didFailWithError:%@",error); [self hiddenProgreesBar]; } //接收完毕 -(void)connectionDidFinishLoading:(NSURLConnection *)connection{ if(didFinish!=nil){ if(isText) [target performSelector:didFinish withObject:buf]; else{ NSArray *data = [JSONParser parseJSON:buf isAllValues:isAllValues valueForKey:valueForKey]; [target performSelector:didFinish withObject:data]; } } [self hiddenProgreesBar]; } -(void) hiddenProgreesBar{ if(progressBar!=nil){ //淡淡消失效果 [UIView animateWithDuration:2 animations:^{ progressBar.alpha = 0; }]; [progressBar performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:2]; } [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; } -(void)dealloc{ [connection release]; [buf release]; [progressBar release]; [super dealloc]; } @end
评论
4 楼
gekie
2011-08-29
网络混混 写道
哥,能给弟贴下去那下吗?
小弟是新手。。
小弟是新手。。
回头我给你。
3 楼
网络混混
2011-08-29
哥,能给弟贴下去那下吗?
小弟是新手。。
小弟是新手。。
2 楼
gekie
2011-08-26
网络混混 写道
10.#import "JSONParser.h"
11.#import "UIProgressBar.h"
等上那找呢,老大?
11.#import "UIProgressBar.h"
等上那找呢,老大?
网上找,开源的。
1 楼
网络混混
2011-08-26
10.#import "JSONParser.h"
11.#import "UIProgressBar.h"
等上那找呢,老大?
11.#import "UIProgressBar.h"
等上那找呢,老大?
发表评论
-
关注比分在线订阅号
2014-11-11 09:05 196订阅号:wapzq101 二维码 -
完成足球赛事资料库iOS版
2011-10-31 09:22 2030最近无聊,花了些时间整理了下足球赛事资料库数据,准备着手写一个 ... -
最近完成的项目开发,准备下一个编码。
2011-10-25 11:55 1292最近开发完手机办公 for iPhone版,已上传到 App ... -
好的想法来源于一瞬间
2011-08-25 21:13 1327接触iOS开发没多久,最近公司要给用户开发一套基于iPhone ... -
终于完成"进球啦!"
2011-08-10 22:32 1586经过几个星期的学习攻 ... -
进球弹出提醒效果
2011-08-02 22:44 2540最近研究UIView动画,对比分在线客户端使用了很多UIVie ... -
可喜,没有发现内存泄漏出现
2011-07-30 10:04 1139在实现即时比分客户端时,生怕这个模块会出现内存泄漏,所以一写完 ... -
iphone窗口传值
2011-07-26 22:24 1952比如有view1和view2view1的init内[[NSNo ... -
iPhone开发乱乱记
2011-07-26 21:09 2502自由布局,UIButton样式,下阴影,按钮事件。 导航栏r ... -
iPhone版比分在线客户端成型
2011-07-25 23:19 1208今天有意无意间,闲着也是闲着,玩玩iPhone开发 比 ... -
大屏日历异步加载每天比赛数目并显示在日历里
2011-07-23 22:30 2227#import <QuartzCore/Quart ... -
TTView的简单使用
2011-06-19 19:17 1458转自:http://c.gzl.name/archives ... -
又有新的进步,继续努力
2011-06-16 17:02 955UIView自由布局 UIScrollerView 下拉到最 ... -
刚刚开始学习iPhone开发,记录一下
2011-06-15 23:01 941即时比分播报 -
UIView背景图固定不滚动实现
2011-06-15 20:01 1734- (id)initWithNibName:(NSStr ... -
16进制颜色(html颜色值)字符串转为UIColor
2011-06-15 12:04 2453互联应用经常会用到html颜色值转换UIColor,比如:#F ... -
获取字符串所占像素长度
2011-06-14 19:57 1850在图生上处理字符的时候,需要得到字符串所占位置长度。这长度与字 ... -
为UIView及其子类添加圆角边框
2011-06-14 19:35 25421.添加QuartzCore.framework 2.实现代 ... -
iPhone设置视图背景图片的方法
2011-06-14 17:34 1862方法一,使用一个UIImageView实例做子视图 ... -
解决一个问题,郁闷好久的问题
2011-06-14 15:34 1187在创建UIButton时,点击动作里老是读取不到成员变量。调试 ...
相关推荐
- **渐进式加载**:在大型数据加载或上传下载场景中,进度条可以展示实时进度,通过API接口获取并更新数据。 - **多任务进度**:在处理多个并发任务时,可以设计复合进度条,显示每个任务的独立进度及总体进度。 ...
在加载图片的过程中,通过监听器获取加载进度,并更新自定义进度条的进度值。 4. **布局集成** 在布局文件中,将自定义的进度条与ImageView放在一起,并通过代码设置图片加载监听器,将进度回调传递给进度条。这样...
根据给定的信息,本文将详细解释“显示异步进度条”的相关知识点,包括自定义进度条的形式、如何利用委托支持异步加载等技术要点。 ### 显示异步进度条 在开发用户界面时,为了提升用户体验,我们经常需要在执行...
在创建自定义进度条时,我们首先需要了解ProgressBar的基本属性和用法。例如,我们可以调整其颜色、大小、样式等。在XML布局文件中,可以设置`android:progressDrawable`属性来改变默认的进度条外观。这个属性接受一...
"异步加载进度条案例素材.zip" 包含了一个名为 "Loading Screen.unitypackage" 的资源包,这个包里可能包含了实现异步加载进度条的示例场景、脚本和其他相关素材。 首先,理解Unity中的异步加载机制。Unity使用`...
在Android开发中,自定义进度条(loadingprogress)是一个常见的需求,它可以帮助用户了解应用程序的运行状态,如数据加载、文件下载等。本资源“安卓进度条loadingprogress相关-自定义进度条效果.rar”提供了几个...
为了解决这个问题,我们可以利用异步加载技术来优化ItemsControl的数据绑定。本文将深入探讨如何在WPF中实现ItemsControl的异步加载。 首先,我们需要了解WPF的数据绑定机制。在WPF中,数据绑定是通过依赖项属性...
6. **异步加载** 为了不影响界面的响应速度,图片加载通常在后台线程进行,而进度条的更新则需要在主线程进行,以确保用户界面的平滑刷新。 7. **性能优化** 对于大量图片的加载,可以考虑使用预加载策略,如懒...
4. **数据显示** 将网络获取的数据展示在对话框的列表中,需要使用`ListView`或`RecyclerView`。在自定义对话框布局中添加这些视图,并创建适配器(Adapter)以绑定数据。适配器通常继承自`BaseAdapter`,并覆盖`...
"Mad Level Manager"可能是一个专门用于管理场景切换的插件或工具,它提供了方便的接口和逻辑,帮助开发者更轻松地实现异步加载并显示进度条。通常,这样的工具会包含一个预设的“加载屏幕”场景,该场景包含了一个...
在本文中,我们将深入探讨如何使用jQuery实现数据加载进度条效果。这个代码示例是基于jQuery库的2.1.0版本,包含了四种不同的进度条动画特效,为用户提供了丰富的视觉体验,使得网页上的数据加载过程更加友好和吸引...
AsyncTree是Flex中的一个自定义组件,它允许开发者构建能够异步加载数据的树形结构。这通常用于展示大量数据或者需要动态加载子节点的情况。通过这种方式,可以显著提高应用的性能和用户体验。 ### 二、代码解析 #...
此外,`Promise`和`async/await`语法在现代JavaScript中也被广泛用于处理异步操作,它们可以很好地与进度条结合,提供更精确的加载反馈。例如,当进行大文件上传或下载时,可以使用`fetch` API与进度事件配合,实时...
当涉及到图像数据时,尤其是在本地和网络环境下,异步加载技术变得至关重要。这是因为直接在主线程中加载大图或网络图片会消耗大量资源,可能导致应用卡顿甚至ANR(Application Not Responding)错误。因此,...
这个话题“图片异步加载(带进度条)+二级缓存+图片手势缩放+ViewPaper+设置壁纸”涵盖了许多Android应用中常见的图片处理技术。下面将详细解释这些知识点。 1. **图片异步加载**: 在Android应用中,为了提供流畅...
在实际开发中,可以根据需求进行扩展,比如增加文字显示、支持双向进度、自定义动画效果等。自定义组件不仅可以提升应用的个性化程度,也是提高代码复用性和可维护性的重要手段。通过不断实践和学习,你将能更好地...
// 假设我们有一个加载数据的异步函数 async function loadData() { for (let i = 0; i ; i += 10) { await new Promise(resolve => setTimeout(resolve, 500)); // 模拟加载延迟 updateProgress(i); } } load...
"C# Winform进度条 数据加载等待控件"就是这样一个组件,它在数据加载或执行耗时操作时提供视觉反馈,告诉用户程序仍在运行,并且预计何时会完成。 这个控件的设计原则是简单易用,开发者只需一行代码就能快速地将...