- 浏览: 257275 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (174)
- android (5)
- android代码片段 (10)
- ios (102)
- 程序员 (5)
- 人生 (1)
- UITextField (2)
- UINavigationController (2)
- iPhone开发 (87)
- cocos2d (8)
- Object-c (1)
- Xcode4 (4)
- Mac (1)
- ASIHTTPRequest (1)
- UITableView (9)
- UIImageView (2)
- CATransition (1)
- CCMenu (1)
- UIView (2)
- UIScrollView (1)
- NSString (1)
- Git (2)
- UISwitch (1)
- UIImage (1)
- 拉伸 (1)
- delegate (1)
- NSTimer (1)
- Crash (1)
- Log (1)
- TabBar (1)
- UITabBarController (1)
- UITextView (1)
- iPad (1)
- app (1)
- test (1)
- 数据库 (1)
最新评论
-
cccoooccooco:
测了下,效率很高啊。谢谢分享。
字符串替换算法【java】 -
zkai309:
你好,
我们是ios手游《富豪传奇》的开发商,你开发的糗事囧 ...
如何判断自己是否到了该辞职的时候 -
xyxdasnjss:
吃饱了就饿 写道以后会用到
设备判断 iphone3? iphone4? iphone5? -
吃饱了就饿:
以后会用到
设备判断 iphone3? iphone4? iphone5? -
xyxdasnjss:
zhihaoshi 写道ios 5.0 中用什么方法判断 iO ...
ios 判断设备的GPS功能是否开启
#import <Foundation/Foundation.h> #import <UIKit/UIKit.h> typedef enum iToastGravity { iToastGravityTop = 1000001, iToastGravityBottom, iToastGravityCenter }iToastGravity; enum iToastDuration { iToastDurationLong = 10000, iToastDurationShort = 1000, iToastDurationNormal = 3000 }iToastDuration; typedef enum iToastType { iToastTypeInfo = -100000, iToastTypeNotice, iToastTypeWarning, iToastTypeError }iToastType; @class iToastSettings; @interface iToast : NSObject { iToastSettings *_settings; NSInteger offsetLeft; NSInteger offsetTop; NSTimer *timer; UIView *view; NSString *text; } - (void) show; - (iToast *) setDuration:(NSInteger ) duration; - (iToast *) setGravity:(iToastGravity) gravity offsetLeft:(NSInteger) left offsetTop:(NSInteger) top; - (iToast *) setGravity:(iToastGravity) gravity; - (iToast *) setPostion:(CGPoint) position; + (iToast *) makeText:(NSString *) text; -(iToastSettings *) theSettings; @end @interface iToastSettings : NSObject<NSCopying>{ NSInteger duration; iToastGravity gravity; CGPoint postition; iToastType toastType; NSDictionary *images; BOOL positionIsSet; } @property(assign) NSInteger duration; @property(assign) iToastGravity gravity; @property(assign) CGPoint postition; @property(readonly) NSDictionary *images; - (void) setImage:(UIImage *)img forType:(iToastType) type; + (iToastSettings *) getSharedSettings; @end
//.m文件
#import "iToast.h" #import <QuartzCore/QuartzCore.h> static iToastSettings *sharedSettings = nil; @interface iToast(private) - (iToast *) settings; @end @implementation iToast - (id) initWithText:(NSString *) tex{ if (self = [super init]) { text = [tex copy]; } return self; } - (void) show{ iToastSettings *theSettings = _settings; if (!theSettings) { theSettings = [iToastSettings getSharedSettings]; } UIFont *font = [UIFont systemFontOfSize:16]; CGSize textSize = [text sizeWithFont:font constrainedToSize:CGSizeMake(280, 60)]; UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, textSize.width + 5, textSize.height + 5)]; label.backgroundColor = [UIColor clearColor]; label.textColor = [UIColor whiteColor]; label.font = font; label.text = text; label.numberOfLines = 0; label.shadowColor = [UIColor darkGrayColor]; label.shadowOffset = CGSizeMake(1, 1); UIButton *v = [UIButton buttonWithType:UIButtonTypeCustom]; v.frame = CGRectMake(0, 0, textSize.width + 10, textSize.height + 10); label.center = CGPointMake(v.frame.size.width / 2, v.frame.size.height / 2); [v addSubview:label]; v.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.7]; v.layer.cornerRadius = 5; UIWindow *window = [[[UIApplication sharedApplication] windows] objectAtIndex:0]; CGPoint point = CGPointMake(window.frame.size.width/2, window.frame.size.height/2); if (theSettings.gravity == iToastGravityTop) { point = CGPointMake(window.frame.size.width / 2, 45); }else if (theSettings.gravity == iToastGravityBottom) { point = CGPointMake(window.frame.size.width / 2, window.frame.size.height - 45); }else if (theSettings.gravity == iToastGravityCenter) { point = CGPointMake(window.frame.size.width/2, window.frame.size.height/2); }else{ point = theSettings.postition; } point = CGPointMake(point.x + offsetLeft, point.y + offsetTop); v.center = point; NSTimer *timer1 = [NSTimer timerWithTimeInterval:((float)theSettings.duration)/1000 target:self selector:@selector(hideToast:) userInfo:nil repeats:NO]; [[NSRunLoop mainRunLoop] addTimer:timer1 forMode:NSDefaultRunLoopMode]; [window addSubview:v]; view = [v retain]; [v addTarget:self action:@selector(hideToast:) forControlEvents:UIControlEventTouchDown]; } - (void) hideToast:(NSTimer*)theTimer{ [UIView beginAnimations:nil context:NULL]; view.alpha = 0; [UIView commitAnimations]; NSTimer *timer2 = [NSTimer timerWithTimeInterval:500 target:self selector:@selector(hideToast:) userInfo:nil repeats:NO]; [[NSRunLoop mainRunLoop] addTimer:timer2 forMode:NSDefaultRunLoopMode]; } - (void) removeToast:(NSTimer*)theTimer{ [view removeFromSuperview]; } + (iToast *) makeText:(NSString *) _text{ iToast *toast = [[[iToast alloc] initWithText:_text] autorelease]; return toast; } - (iToast *) setDuration:(NSInteger ) duration{ [self theSettings].duration = duration; return self; } - (iToast *) setGravity:(iToastGravity) gravity offsetLeft:(NSInteger) left offsetTop:(NSInteger) top{ [self theSettings].gravity = gravity; offsetLeft = left; offsetTop = top; return self; } - (iToast *) setGravity:(iToastGravity) gravity{ [self theSettings].gravity = gravity; return self; } - (iToast *) setPostion:(CGPoint) _position{ [self theSettings].postition = CGPointMake(_position.x, _position.y); return self; } -(iToastSettings *) theSettings{ if (!_settings) { _settings = [[iToastSettings getSharedSettings] copy]; } return _settings; } @end @implementation iToastSettings @synthesize duration; @synthesize gravity; @synthesize postition; @synthesize images; - (void) setImage:(UIImage *) img forType:(iToastType) type{ if (!images) { images = [[NSMutableDictionary alloc] initWithCapacity:4]; } if (img) { NSString *key = [NSString stringWithFormat:@"%i", type]; [images setValue:img forKey:key]; } } + (iToastSettings *) getSharedSettings{ if (!sharedSettings) { sharedSettings = [iToastSettings new]; sharedSettings.gravity = iToastGravityCenter; sharedSettings.duration = iToastDurationShort; } return sharedSettings; } - (id) copyWithZone:(NSZone *)zone{ iToastSettings *copy = [iToastSettings new]; copy.gravity = self.gravity; copy.duration = self.duration; copy.postition = self.postition; NSArray *keys = [self.images allKeys]; for (NSString *key in keys){ [copy setImage:[images valueForKey:key] forType:[key intValue]]; } return copy; } @end
//调用
[[iToast makeText:@"需要显示的内容"] show];
发表评论
-
iOS 关闭键盘 3种方式
2015-12-11 14:21 8341,明确知道 当前的UITextField,或者UITextV ... -
在webapp中判断native app是否安装并直接打开
2015-08-31 18:15 881http://www.baidufe.com/item/cc5 ... -
iOS之ARC下的Block
2015-04-15 14:37 644http://www.cnblogs.com/tekkama ... -
UITableView 隐藏多余的Cell的分割线
2015-02-02 14:39 1598- (void)setExtraCellLineHidden ... -
UILabel顶端对齐
2014-09-10 10:15 767http://shfzhzhr.iteye.com/blog ... -
iOS7滑动返回
2014-06-24 11:48 961http://blog.csdn.net/wmqi10/ar ... -
UIView (Additon)
2014-06-19 22:23 818#import <UIKit/UIKit.h> ... -
UIColor (XYCategory)
2014-06-19 22:13 543#import <UIKit/UIKit.h> ... -
OC MD5
2014-06-19 21:50 823#import <Foundation/Foundat ... -
IOS判断设备是否已越狱(isJailbroken)
2014-06-03 21:17 742@interface UIDevice (Helper) ... -
iOS6 Xcode5 去掉Icon高亮
2014-05-25 11:13 0我昨天刚遇到这个问题,已经解决。请按照下图红色矩形所圈处的信 ... -
iOS使用NSClassFromString
2014-03-07 11:24 968http://www.cocoachina.com/b/?p ... -
iOS7 开发相关
2013-10-22 10:17 12581.UITableView reloadData 之 ... -
iPad横版开发时,宽高是反的
2013-08-14 18:01 1115最近刚开始做iPad版应用,但发现横版的时候宽高是反的,很别 ... -
UITextView 带有PlaceHolder
2013-07-31 13:23 1495#import <UIKit/UIKit.h> ... -
UITableView 只更新某行
2013-07-22 10:10 1057如果全部更新的话 用reloadData方法 如果 ... -
Xcode 4.4中LLVM compiler 4.0带来的Objective-C新语法特性
2013-07-15 10:56 944http://blog.csdn.net/totogo201 ... -
new 与 alloc/init的区别
2013-07-11 14:47 763http://blog.csdn.net/abby_shee ... -
自定义UITableViewCell上的delete按钮
2013-06-28 10:35 1107//通过UITableViewDelegate方法可以实现删 ... -
判断是否是 emoji表情
2013-06-28 09:42 2401+ (BOOL)stringContainsEmoji:(N ...
相关推荐
React Native Toast是一个跨平台的组件,它为Android和iOS提供了类似Android原生Toast的功能。这个组件使得开发者在使用React Native进行混合移动应用开发时,能够方便地实现快速、简洁的提示信息显示,无论是在...
在iOS开发中,为了实现类似于Android的Toast功能,开发者通常会使用第三方库或者自定义视图来达到相同的效果。在Android系统中,Toast是一种轻量级的提示方式,它可以在屏幕上短暂显示信息,然后自动消失,不影响...
在iOS开发中,为了实现类似Android的Toast效果,开发者经常需要自定义一个控件来达到显示短暂消息的目的。本教程将深入讲解如何在iOS中创建一个功能与Android Toast相似的自定义控件,以帮助iOS应用增加更多元化的...
FlutterToast是针对Flutter框架开发的一款插件,专用于在Android和iOS平台上实现类似原生Toast的功能。这个开源项目为开发者提供了便捷的方式,在跨平台的Flutter应用中显示短暂的通知消息,无需深入理解每个平台的...
在iOS开发中,"Toast"通常指的是一个短暂显示信息的小视图,它可以在屏幕上的任意位置弹出,显示一些简短的通知或者提示信息,然后在一段时间后自动消失,类似于Android平台中的同名功能。这个"iOS Toast.zip"压缩包...
总结一下,Flutter的Android和iOSToastLibrary是一个关键的开发工具,它使得在Flutter应用中实现类似原生的Toast功能变得简单。无论是在Android还是iOS设备上,开发者都能够快速地向用户传达信息,提升应用的用户...
而“Cordova PhoneGap Toast iOS插件”是专为这类应用设计的一个功能组件,主要用于在iOS平台上实现弹出提示信息,类似于Android中的Toast控件,能够向用户展示短暂的通知信息而不打断当前操作。 【描述】:“一款...
虽然描述中提到了“类似于Android的Toast”,但这个组件应该是跨平台的,可以运行在Cocos Creator支持的所有平台上,包括iOS、Android、Web等。 通过理解和利用这个自定义Toast组件,开发者可以提高Cocos Creator...
"类似于安卓Toast的一种提示效果" 这个标题表明我们将要讨论的是一个在iOS平台上实现的UI组件,它的功能与Android系统中的Toast类似。在Android中,Toast是一种轻量级的提示方式,它能够在屏幕上的指定位置短暂显示...
这个库使得iOS开发者能够方便地在应用中添加自定义的、可配置的底部提示视图,为用户提供类似于Android的用户体验。 在压缩包中,"altoastview.png"是一个示例图片,展示了ALToastView在实际应用中的外观。你可以...
AFToast 是一个专为 iOS 平台设计的轻量级库,它提供了一个简单易用的方式来显示短暂的通知消息,类似于 Android 中的 Toast。这个库是用 Objective-C 编写的,对于那些使用 Objective-C 进行 iOS 开发的程序员来说...
在Android开发中,有时我们希望实现与iOS类似的用户体验,其中包括时间选择器的界面风格。本文将详细介绍如何在Android中创建一个仿iOS样式的时间选择器,并提供一个可直接调用的源码实现。这个自定义控件名为...
这个项目名为"GroupDialogDemo",它是一个基于Android Studio的工程,适用于那些希望在应用中引入类似iOS弹窗效果的开发者。 首先,我们来理解`AlertDialog`的基本概念。`AlertDialog`是Android SDK提供的一种原生...
本项目中的“高仿ios吐司效果”意味着开发者可以使用这套组件在Android应用中实现与iOS类似的通知展示方式,提高应用的统一性和美观度。 项目中的TipsDemo可能是演示这些效果的示例代码或者应用。通常,这样的Demo...
这些提示信息通常会在屏幕上停留一段时间后自动消失,类似于Android中的Toast。为了在iOS平台上实现类似的特性,开发者可以利用第三方库`ToastKit`。本文将深入探讨`ToastKit`的功能、用法以及如何将其集成到iOS项目...
这里提到的是一个设计风格类似于Android的iOS HUD组件,意味着它可能借鉴了Android系统的提示窗口设计,但又针对iOS平台进行了优化,以提供更流畅的用户体验。 描述中提到的“非常容易实用,调用方便,不会对你项目...
在iOS开发中,"吐司提示框"是一种常见的用户界面元素,它能够在短时间内向用户显示简短的信息,然后自动消失,类似于Android系统中的Toast。这个压缩包提供的资源可能是一个自定义的UI组件,用于在iOS应用中实现类似...
本资源提供了一个iOS应用源码,它实现了类似于Android平台上的底部动态提示功能,旨在帮助开发者在iOS应用中创建类似的用户体验。 在Android中,底部动态提示通常是一个浮层或者小窗口,它会出现在屏幕底部,用于...
本教程将详细讲解如何在Vue项目中实现一个类似安卓或iOS系统的Toast提示框功能。 首先,理解Toast的概念:Toast是一种轻量级的通知方式,它会在屏幕中央或底部短暂显示信息,例如“登录成功”或“操作失败”,在...
"Toasty"是一个轻量级的库,专门用于创建具有多种风格的提示信息,类似于iOS中的Toast。传统的Android Toast虽然简单易用,但在样式定制方面较为有限。而Toasty则弥补了这一不足,提供了预设的多种主题风格,如error...