iOS的风格和Apple其他产品一样,简单而粗暴。没有给人其他选择的余地,让你又爱又恨。同样的,Apple对待iOS平台的开发人员和对待大众消费者一样,也不给你留余地。UIAlertView就是一个鲜明标志。功能简单,甚至单一,定制性差,消耗资源。在资源紧张的设备上,UIAlertView的动画效果都会稍微卡一下,很是别扭。
这时还是很希望在iOS上有一个Android风格的Toast控件。
终于
https://github.com/ecstasy2/toast-notifications-ios 发布了这样的控件。在这里和大家分享一下。
我制作了一个demo,使用起来感觉效果还是很不错的。
这个类的接口设计如下:
#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
===The interface of the SharedSettings ===
@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
从接口上看,可以设置风格和显示时间,显示位置等,但是从实现代码上看是图片显示只是预留的接口,尚未实现。其显示的位置在设备旋转时也没有进行处理,没有进行横屏等其他方向的显示控制。
简单的调用
[[iToast makeText:NSLocalizedString(@"The activity has been successfully saved.", @"")] show];
设置显示位置
[[[iToast makeText:NSLocalizedString(@"The activity has been successfully saved.", @"")] setGravity:iToastGravityBottom] show];
设置显示位置和显示时长类型
[[[[iToast makeText:NSLocalizedString(@"Something to display a very long time", @"")] setGravity:iToastGravityBottom] setDuration:iToastDurationLong] show];
- 大小: 21.8 KB
分享到:
相关推荐
React Native Toast 一个用于android和ios类似于android toast提示控件,android使用原生toast, ios使用UIView Toast
iOS中实现android中Toast的效果,封装的代码库,使用简单
iOS编写自定义控件系列教程,仿Android的Toast控件。
IOS上类似android上得toast第三方工具,
ios上实现了类似android toast的工具,可直接拿来在项目中使用
封装一个基于iOS与Android双平台的Toast组件和加载Loading组件
最近在开发中我们经常会在适配5.0以后的机型遇到各种各样的问题,其中有一个不大不小的问题就是:Toast不显示问题,这篇文章就给大家总结了Android 5.0以上Toast不显示的原因与解决方法,有需要的朋友们可以参考借鉴...
自己整理的自定义控件方法,看了你就会做自定义Dialog和Toast了,没有多余代码,很简洁。背景、按钮都能自定义
使用Qt Widget Application技术实现桌面操作系统下类似Android的toast控件效果。Demo中实现为多线程的单例模式。
Android 演示简单toast和带图片toast的实现方法,这些toast在平时的Android应用开发中使用频繁,本源码演示了两种最实用toast的用法,一种是不带图片,另一种是带图片: // 简单的toast,不带图片的实现方法: ...
主要为大家详细介绍了android自定义Toast设定显示时间,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
react-native 超方便好用toast组件支持ios、android.zip,一个显示toast警报的react本地模块,它在ios和android上工作。
Android:实现Toast自定义样式(包括:自定义位置、带图片等)、自定义显示时长(包括可用系统时长、可自定义)
在IOS中实现Toast功能,可横屏,适合iPad中使用
WPF下实现类似微信Toast控件: 1.淡入淡出弹出Toast提示框 2.显示固定时长后自动消失 3.友好性图标 4.可根据父容器定位 5.可根据显示器定位,并去除任务栏高度和宽度(为了防止某些装逼人士,喜欢把默认的底部任务栏...
一个简单的自定义Toast资源,您可以根据自己的需要更改我的代码即可实现您想要的效果(主要是更改xml文件的布局),这是androidstudio的项目,但是不妨碍在eclipse中使用,可以直接在eclipse中新建android项目,然后将...
Android Toast 工具类
Android中自定义Toast.pdf 学习资料 复习资料 教学资源
Android中自定义Toast背景颜色及字体颜色,防止Toast多次创建的ToastUtil,详细了解请移步:http://blog.csdn.net/zxc514257857/article/details/68962539