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

简化UIActivityIndicatorView的创建和使用

    博客分类:
  • iOS
阅读更多

头文件:

 

#define activityViewTag 0x98751234

@interface UIView (ActivityView) 

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

@end

 

实现文件:

 

#import "UIView.h"

@implementation UIView (ActivityView)

- (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];
	}        
}

- (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;
	}
}

@end

 

分享到:
评论

相关推荐

    swift-Progress进度条UIActivityIndicatorView小菊花弹窗状态显示

    本篇文章将深入探讨如何在Swift中使用`Progress`类和`UIActivityIndicatorView`来创建进度条和小菊花(活动指示器)效果,以及如何将其融入弹窗以展示任务状态。 首先,`Progress`类是iOS中用于表示进度的一种方式...

    IOS应用源码之【类库与框架】DSActivityView.rar

    在iOS应用开发中,类库和框架扮演着至关重要的角色,它们为开发者提供了丰富的功能,大大简化了编码工作。在这个名为"DSActivityView"的源码包中,我们重点探讨的是一个特定的类库——DSActivityView,它主要用于...

    商城二级联动效果类似小米商城

    - 可以利用Swift的RxSwift或ReactiveCocoa等响应式框架,简化事件处理和数据绑定,使代码更简洁。 7. 数据持久化: - 如果用户经常使用某些筛选条件,可以考虑将这些选择保存在UserDefaults或数据库中,下次打开...

    ios-状态栏指示器.zip

    在iOS开发中,状态栏(Status Bar)是用户界面的一部分,显示着设备的网络状态、时间、...开发者可以通过学习这个示例,了解如何在iOS应用中创建自定义状态栏指示器,以及如何在实际项目中合理地使用和管理这种组件。

    提示框,加载框

    在iOS中,`UIActivityIndicatorView`和`MBProgressHUD`是常用的加载框组件,而在Android中,可以使用`ProgressBar`或第三方库如`ProgressDialog`。 以"SVProgressHUD"为例,这是一个跨平台的加载框库,适用于iOS和...

    swift-一个加载中视图

    在这个主题中,我们将深入探讨如何使用Swift语言来创建一个自定义的加载中视图,以及如何集成进度条视图来展示加载进度。 首先,让我们理解什么是Swift。Swift是Apple为iOS、iPadOS、macOS、watchOS和tvOS开发的一...

    swift-不止是View才可以弹窗提示

    除此之外,还有UIActivityIndicatorView(活动指示器)用于表示加载过程,MBProgressHUD或ALiProgressHUD这样的第三方库则提供了更丰富的进度提示和自定义选项。 描述中的问题在于,当需要在非UIViewController或非...

    UIKit图片完整版

    这些只是UIKit中的一部分知识点,实际的压缩包可能包含更多组件的示例图片,如UISlider、UIActivityIndicatorView、UIBarButtonItem等,每个都有其特定的用法和配置选项。通过查看这些图片,开发者可以更好地理解...

    Swift学习基础控件全解析Demo

    总之,"Swift学习基础控件全解析Demo"是一个全面的学习资源,涵盖了UIKit控件的使用和定制。无论你是Swift新手还是希望巩固OC基础的开发者,都可以从中获益。通过深入学习和实践,你将能够创建出具有专业外观和流畅...

    上下拉刷新PullingRefreshTableView

    8. **封装组件库**:为了简化开发,很多开发者会使用第三方库,如SDRefreshControl、MJRefresh等,它们提供了丰富的自定义选项和开箱即用的功能。 9. **Swift UI或SwiftUI**:对于Swift项目,Apple引入了SwiftUI,...

    SYFlipView

    综上所述,SYFlipView是一个强大且易于使用的工具,它简化了iOS应用中按钮和视图翻转动画的实现,为开发者提供了丰富的自定义选项,同时保持了良好的性能和兼容性。通过深入了解和应用这个组件,开发者可以为用户...

    ios应用源码之圆形activity加载器 2018127

    在iOS中,系统提供了默认的UIActivityIndicatorView,但有时为了满足独特的设计需求,开发者可能需要创建自定义的加载器。这个源码项目就展示了如何从头开始构建一个圆形的加载动画。下面我们将深入探讨这个话题,...

    ios-网络加载提示窗,状态提示窗.zip

    这个库可能封装了这些指示器的使用,简化了代码,使其更易于在项目中集成和管理。通过阅读WYBasisKit.txt,开发者可以了解如何使用这些提示窗口,如何在特定的网络操作中触发它们,以及如何自定义它们的外观和行为。...

    iOS 提示控件

    3. **易于使用**:通过简单的OC代码就能快速集成,比如初始化、设置进度、开始和结束加载等方法。 4. **兼容性**:可能支持iOS的不同版本和屏幕尺寸,确保在多种设备上都能良好运行。 5. **线程安全**:如果库设计...

    前后式滚动图片代码

    10. **自定义控件**:如果需要更高级的定制,如添加指示器、箭头按钮等,可以创建自定义的UIControl子类,结合UIButton和UIActivityIndicatorView等组件来实现。 总之,前后式滚动图片代码框架集成了多种iOS开发中...

    EGOTableViewPullRefresh

    该项目的核心是EGOPullRefreshTableHeaderView类,它继承自UIView,并包含了UIActivityIndicatorView(活动指示器)和UILabel(用于显示提示信息),通过监听UITableView的contentOffset属性来判断是否触发刷新动作...

    代码例子区全区搜索索引[参考].pdf

    5. **触摸事件处理**:UITouch是iOS中处理用户触摸事件的关键类,文中介绍了如何使用它来创建多点触控程序。 6. **网络连接状态检测**:通过NSStreams建立TCP链接,并检测网络活动状态,这对于实时应用如在线游戏或...

    上拉/下拉刷新 完美源代码

    1. **创建刷新指示器**:可以使用`UIActivityIndicatorView`来表示正在刷新的状态,或者自定义视图来实现3D效果。 2. **添加手势识别**:添加`UIScrollViewDelegate`并实现其方法,如`scrollViewDidScroll:`来监听...

    iOSswift控件大全

    在iOS开发中,Swift语言是苹果官方推荐的...在Swift-master这个项目中,可能包含了这些控件的示例代码,帮助开发者理解和学习如何在实践中使用它们。通过深入研究这些例子,可以加深对iOS UI编程的理解,提升开发技能。

    webview的下拉刷新

    - 对于UIWebView,我们可以利用UIActivityIndicatorView(活动指示器)和手势识别器(GestureRecognizer)来实现。首先,创建一个可滚动的header视图,添加活动指示器,然后监听webView的scrollView的contentOffset...

Global site tag (gtag.js) - Google Analytics