iOS开发之八:UIActivityIndicatorView、UIAlertView的使用

本文的三种控件,用的也非常多,而我也是经常图懒,而去打开原来的项目去拷贝,现在记录一下,就不用去项目中去找这些控件的用法了。

一、UIActivityIndicatorView 的使用

UIActivityIndicatorView 俗称“风火轮”,也有人称之为菊花,安装黑苹果系统时,远景论坛上都称之为菊花。

它主要是用来告诉用户当前正在加载数据,让用户等待一下。长这个样子的:

它的常用属性和方法也比较少:

// 设置风格  

@property(nonatomic) UIActivityIndicatorViewStyle  

activityIndicatorViewStyle;  

// 停止时,隐藏视图,默认为YES  

@property(nonatomic) BOOL hidesWhenStopped;  

// 修改颜色,注意版本问题  

@property (readwrite, nonatomic, retain) UIColor *color  

// 开始动画  

- (void)startAnimating;  

// 停止动画  

- (void)stopAnimating;  

// 判断动画的状态(停止或开始)  

- (BOOL)isAnimating; 


使用UIActivityIndicatorView  的示例代码如下:

UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];  

activityView.center = CGPointMake(160, 200);  

[activityView startAnimating];  

activityView.hidesWhenStopped = NO;  

[self.window addSubview:activityView];  

[activityView release];  


[NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(test:) userInfo:activityView repeats:NO];  


//状态栏也显示风火轮  

[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];  

把定时器的方法也记录一下吧,设置的是3秒之后隐藏“风火轮”。

- (void)test:(NSTimer *)timer  

{  

[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];  


UIActivityIndicatorView *activityView = [timer userInfo];  

[activityView stopAnimating];  

}

注意:苹果自带的“风火轮”效果有时候不能满足我们的需要,我们可以用第三方的框架 MBProgressHUD,它有多种效果,可以附带图片,或者附带文字,还可以改装成安卓里的toast。至于MBProgressHUD的使用,我就不介绍了,给个传送门:MBProgressHUD的使用,这是别人写的。里面还有github的下载地址。

推荐一个demo网站:code4app,里面也有MBProgressHUD的使用demo----》demo资料


二、UIAlertView的使用

UIAlertView 是用来提示用户,供用户选择的,我印象里,它是会阻塞线程的。而且窗口的级别非常高。

直接上代码好了:

//UIAlertView 初始化  

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"标题" message:@"提示文本信息" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil nil];  

[alertView show];  


上面的delegate参数设置时,需要实现UIAlertViewDelegate中的方法:

#pragma mark - AlertView Delegate  

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex  

{  

NSLog(@"buttonIndex : %d", buttonIndex);  

我们可以根据buttonIndex来区分用户点击的是哪一按钮,来执行不同的操作。


三、UIActionSheet的使用

这里需要注意的是,actionSheet showInView这个方法,将其添加的位置不对,会造成有时候点击没有反应的情况。

UIActionSheet *actionSheet = [[[UIActionSheet alloc] initWithTitle:@"title" delegate:self cancelButtonTitle:@"cancel" destructiveButtonTitle:@"destructive" otherButtonTitles:@"other1", @"other2", @"other3", @"other3", nil nil] autorelease];  

[actionSheet showInView:self.window];// 这里我经常这样写:[actionSheet showInView:[UIApplication shareApplication].keyWindow];  

同理如果你需要根据不同按钮触发不能的操作的话,也是要实现其delegate方法。

#pragma mark - ActionSheet Delegate  

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex  

{  

NSLog(@"clickedButtonAtIndex : %d", buttonIndex);  

}  

我们可以根据buttonIndex来区分用户点击的是哪一按钮,来执行不同的操作。


版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/u011619283/article/details/24004483

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS开发系列--网络开发 概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可...
    lichengjin阅读 3,772评论 2 7
  • { 11、核心动画 需要签协议,但是系统帮签好 一、CABasicAnimation 1、创建基础动画对象 CAB...
    CYC666阅读 1,611评论 2 4
  • 代码下载地址一代码下载地址二 前言 在iOS应用程序中,我们经常看到各种各样的弹出框,比如地理信息、相册、相机、权...
    酒茶白开水阅读 25,870评论 11 28
  • 在我看来,今天的内容能够实现的基础是,我们还在思考! 我们生活的社会,已经太多的人不知道思考是什么存在了,人云亦云...
    落语无声阅读 225评论 1 0
  • 今天开学第一天,起得早,放学后又在外面疯了一会,践行内容不多 古诗:背新的古诗《所见》,“牛”“口”把然误认为黑。...
    佳茗妈阅读 137评论 0 0