`
niCe
  • 浏览: 40453 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Iphone显示正在加载

 
阅读更多
//
//  ActivityView.h
//
//  Copyright 2010. All rights reserved.
//

#import <UIKit/UIKit.h>

#define kAnimationDurationStart 2
#define kAnimationDurationEnd 1

@interface ActivityView : NSObject {
    IBOutlet UILabel *messageLabel;
    IBOutlet UIView *view;
    BOOL isShow;
}

@property (nonatomic, readonly) UILabel *messageLabel;
@property (nonatomic, readonly) UIView *view;
@property (nonatomic) BOOL isShow;

+ (ActivityView *)sharedActivityView;

- (void)showWithMessage:(NSString *)message  animate:(BOOL)animate;
- (void)hide:(BOOL)animate;

@end

 

 

//
//  ActivityView.m
//
//  Copyright 2010  All rights reserved.
//

#import "ActivityView.h"

@implementation ActivityView

@synthesize messageLabel,view, isShow;
//单例模式
static ActivityView *activityView;


- (id) init {
    self = [super init];
    if (self != nil) {
        [[NSBundle mainBundle] loadNibNamed:@"ActivityView" owner:self options:nil];
        [[[UIApplication sharedApplication] keyWindow] addSubview:view];
        [view setFrame:CGRectMake(0, [UIApplication sharedApplication].statusBarFrame.size.height-view.frame.size.height, view.frame.size.width, view.frame.size.height)];
        isShow = NO;
    }
    return self;
}

+ (ActivityView *)sharedActivityView {
    if (!activityView) {
        activityView = [[ActivityView alloc]init];
    }
    return activityView;
}

- (void)showWithMessage:(NSString *)message animate:(BOOL)animate {
    isShow = YES;
    messageLabel.text = message;
    [view.superview bringSubviewToFront:view];
    if ( animate ) 
    {
        
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:kAnimationDurationStart];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [view setFrame:CGRectMake(0, [UIApplication sharedApplication].statusBarFrame.size.height, view.frame.size.width, view.frame.size.height)];
        [UIView commitAnimations];
    }
    else 
    {
        [view setFrame:CGRectMake(0, [UIApplication sharedApplication].statusBarFrame.size.height, view.frame.size.width, view.frame.size.height)];
    }


}

- (void)hide:(BOOL)animate{
    messageLabel.text = @"";
    if (animate) 
    {
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:kAnimationDurationEnd];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [view setFrame:CGRectMake(0, [UIApplication sharedApplication].statusBarFrame.size.height-view.frame.size.height, view.frame.size.width, view.frame.size.height)];
        [UIView commitAnimations];    
    }
    else
    {
        [view setFrame:CGRectMake(0, [UIApplication sharedApplication].statusBarFrame.size.height-view.frame.size.height, view.frame.size.width, view.frame.size.height)];
    }
    [[UIApplication sharedApplication] keyWindow].userInteractionEnabled = YES;
    isShow = NO;
}    
@end
 

调用方法

 [[ActivityView sharedActivityView] showWithMessage:@"正在下载数据" animate: NO];

[[ActivityView sharedActivityView] hide: YES]; 


 

如何更改ActivityView位置,

修改 setFrame方法 

 

 

coco china里有人提供了另外一个方法:

#define activityViewTag                0x98751234

@interface UIView (UIViewUtils) 

- (void)showActivityViewAtCenter;
- (void)hideActivityViewAtCenter;
- (UIActivityIndicatorView*)createActivityViewAtCenter:(UIActivityIndicatorViewStyle)style;
- (UIActivityIndicatorView*)getActivityViewAtCenter;

@end

#import "UIViewUtils.h"


@implementation UIView (UIViewUtils)

- (UIActivityIndicatorView*)createActivityViewAtCenter:(UIActivityIndicatorViewStyle)style
{
    static int size = 30;
    
    UIActivityIndicatorView* activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:style];
    activityView.frame = CGRectMake([UIScreen mainScreen].bounds.size.width/2 - size/2, [UIScreen mainScreen].bounds.size.height/2 - size*2, size, size);
    activityView.tag = activityViewTag;
    [self addSubview:activityView];
    [activityView release];
    
    return activityView;
}

- (UIActivityIndicatorView*)getActivityViewAtCenter
{
    UIView* view = [self viewWithTag:activityViewTag];
    if (view != nil && [view isKindOfClass:[UIActivityIndicatorView class]]){
        return (UIActivityIndicatorView*)view;
    }
    else {
        return nil;
    }
}

- (void)showActivityViewAtCenter
{
    UIActivityIndicatorView* activityView = [self getActivityViewAtCenter];
    if (activityView == nil){
        activityView = [self createActivityViewAtCenter:UIActivityIndicatorViewStyleWhite];
    }

    [activityView startAnimating];
}

- (void)hideActivityViewAtCenter
{
    UIActivityIndicatorView* activityView = [self getActivityViewAtCenter];
    if (activityView != nil){
        [activityView stopAnimating];
    }        
}


@end  

 

分享到:
评论

相关推荐

    IPHone 自己加载nib文件显示UITable的例子

    IPHone 自己加载nib文件显示UITable的例子

    iphone开发笔记

    如何在iPhone程序读取数据时显示进度窗 36 WebKit的基本用法 37 为什么不要做iPhone上面的应用 38 获取iPhone用户手机号 38 在程序中关闭iPhone 39 convert the contents of an NSData object to an NSString 39 ...

    iPhone开发秘籍.part2.rar

    不负众望,iPhone 可以加载并显示各种格式的媒体。它可以播放音乐和电影,处理图像和Web 页面。 也可以呈现PDF 文档和相册。第7章介绍用多种方法将数据导入或下载到程序中,并使用iPhone 的多点 触摸界面显示这些...

    iPhone开发秘籍.part4.rar

    不负众望,iPhone 可以加载并显示各种格式的媒体。它可以播放音乐和电影,处理图像和Web 页面。 也可以呈现PDF 文档和相册。第7章介绍用多种方法将数据导入或下载到程序中,并使用iPhone 的多点 触摸界面显示这些...

    iPhone开发秘籍.part1.rar

    不负众望,iPhone 可以加载并显示各种格式的媒体。它可以播放音乐和电影,处理图像和Web 页面。 也可以呈现PDF 文档和相册。第7章介绍用多种方法将数据导入或下载到程序中,并使用iPhone 的多点 触摸界面显示这些...

    《iPhone开发实战》.(Christopher Allen).pdf

    3.6 重新显示网页36 3.6.1 gmail iphone页面36 3.6.2 facebook iphone页面37 3.7 支持非iphone用户38 3.8 小结39 第4章 高级webkit和文本web应用程序40 4.1 webkit简介40 4.1.1 新的html元素41 ...

    Android例子源码仿iphone的程序卸载器.zip

    本项目是一个仿iphone的程序卸载器,自动扫描加载非系统的app,长按后图标显示删除按钮,并且来回晃动,单击后转跳到系统的卸载界面。本项目编码GBK默认编译版本4.4.2

    iPhone开发秘籍

    iPhone开发秘籍 The iPhone Developer's Cookbook Building Applications with the iPhone SDK 本电子书共295页 Amazon超级畅销书 大量未公开的绝技,带你深入iPhone开发秘境 任务驱动,丰富的实战代码,让你...

    iPhone例子源代码 Code Sample : Lazy Table Images

    这是苹果apple的iphone官方例子,帮助你学习UITableView和显示RSS文本,异步方式加载图片...... 这个例子 分阶段地载入和显示一个UITableView. 一开始载入相关的RSS文本,使表格以最快速度显示出来,然后再异步方式...

    创建一个简单的 iOS 5 iPhone App 教程

    此教程分三段,这里是第一段, 我们将讨论如何加载我们的模型的虫子列表,并将它们显示在表视图上。 (跳转到第二部分或第三部分) 本教程是iOS开发初学者的,但它假定您熟悉Objective-C和一般编程。如果您不了解 ...

    iphone3开发基础教程

    1.4.1 只有一个正在运行的应用程序 4 1.4.2 只有一个窗口 4 1.4.3 受限访问 5 1.4.4 有限的响应时间 5 1.4.5 有限的屏幕大小 5 1.4.6 有限的系统资源 5 1.4.7 不支持垃圾收集 6 1.4.8 新功能 6 1.4.9 与众不同的方法...

    仿iphone的程序卸载器.zip

    仿iphone的程序卸载器动扫描加载非系统的app,长按后图标显示删除按钮,并且来回晃动,单击后转跳到系统的卸载界面。  

    ios 页面有下拉加载 弹窗遮挡 绝对干货

    最近做微信小程序,遇到一个问题,页面带有...结果,返回数据较多的页面的时候,发现,页面在一直不停的加载,body的高度设成100%导致下拉加载插件出现bug,心里一群**马呼啸而过,ios有时候很无语,前端攻城狮表示很难

    探讨Android 的屏幕滚动操作不如 iPhone 流畅顺滑的原因

    虽然很多Android手机的配置都比iPhone要高,比如大多数Andorid手机的内存都有1GB,而iPhone 4S只有512MB内存,但用过iPhone的人都知道Android手机在使用的时候总感觉没有那么顺滑,究竟为什么会出现这种现象呢?

    MBTileParser(iPhone源代码)

    来源:Licence:MIT平台:iOS设备:iPhone / iPad作者:Moshe Berman  用UIKit写的一个小型游戏... 在视图中显示对话框:利用 MBDialogTree 可以加载对话队列,并且支持对话框消失动画。 4. 虚拟游戏手柄:利用

    Chrome Progress Bar(iPhone源代码)

     加载网页时,实现类似Chrome app的加载进度条,即在浏览器地址栏的下方出现蓝色的进度条,而不是在地址栏里面出现进度条。可以比较准确判断网页加载的进度。 小编注:有几位开发者之前在讨论区问过如何显示网页...

    ImageView With Preview(iPhone源代码)

    来源:Licence:MIT平台:设备:iPhone / iPad作者:Baglan  实现高清晰大图的异步加载...这份代码就是实现这种大图异步加载以及预先显示预览图的功能。 Code4App编译测试,适用环境:Xcode 4.5, iOS 5.0 以上。

    微信公众号扫码登录 提示 网路出错了, 轻触屏幕重新加载-1001错误

    出现问题的场景:调用微信网页授权https://open.weixin.qq.com/connect/oauth2/authorize后,就显示“网络出错,轻触屏幕重新加载” 网上搜索的结果基本上就是说系统时间的问题,把系统时间设置为24小时制就ok了。 ...

Global site tag (gtag.js) - Google Analytics