Swift README.md
Swift beta 版本现已推出!中文 Swift README.md
Swift beta 版本现已推出!查看中文文档 Chinese README.md
电子邮件:[email protected]
微信:pikacode
EBBannerView
一行即可显示
-
与 iOS 推送通知风格相同的横幅(自动显示 iOS 9~13 风格,最高到系统版本)
-
横幅显示时自动播放声音或震动
-
支持长文字的向下划动手势
还有更多:
-
自定义横幅的图标/标题/日期/内容/动画时间间隔
-
自定义声音(使用系统声音或播放声音文件)
-
自动调整横幅的竖屏/横屏框架大小
-
在竖屏/横屏中显示不同框架的自定义视图
-
自定义视图具有不同的动画模式,从顶部/左侧/右侧/左侧/中心出现
-
NSNotification 带有点击事件并传递一个值
截图
系统样式
自定义样式
安装
Pod
target 'YourTargetName' do
pod 'EBBannerView'
end
用法
系统样式
#import <EBBannerView.h>
2种使用方式
1. 展示一线iOS风格横幅
适用于系统版本,将显示iOS 9~13风格的横幅,自动显示应用图标/名称。
[EBBannerView showWithContent:@"custom content"];
2. 自定义所有值包括iOS风格
//1.create a banner, custom all values
EBBannerView *banner = [EBBannerView bannerWithBlock:^(EBBannerViewMaker *make) {
make.style = EBBannerViewStyleiOS9;//custom system, default is current
//make.style = 9;
make.content = @"MINE eye hath played the painter and hath stelled";
//make.object = ...
//make.icon = ...
//make.title = ...
//make.soundID = ...
}];
//2.show
[banner show];
参数
(未设置时将使用默认值)
style
:iOS风格,默认为UIDevice.currentDevice.systemVersion.intValue
,类型枚举:NSInteger {9/10/11}icon
:图标,默认为应用图标,类型UIImagetitle
:标题,默认为应用名称,类型NSStringdate
:日期,默认为本地化字符串 @"现在" = @"now",类型NSStringcontent
:内容,类型NSStringshowAnimationDuration
:动画时间(显示横幅),类型NSTimeInterval,默认为0.3hideAnimationDuration
:动画时间(隐藏横幅),类型NSTimeInterval,默认为0.5stayDuration
:横幅在隐藏前的持续时长,类型NSTimeInterval,默认为4.0swipeDownStayDuration
:长文本横幅展开时持续隐藏的时长,默认为4.0。您可以将它设置为较大的值,这样横幅将不会隐藏,直到用户点击它或调用'hide'object
:创建时可以设置,点击时通过添加观察者获取(见下文),默认为content
,类型idsoundID
:横幅显示时播放的声音(当iPhone静音时将振动),类型UInt32-
这是iOS系统声音ID,默认推送通知声音 "Tritone" 为 1312
-
更多声音ID请参阅此处 iOS预定义声音 或此处 AudioServices声音
-
您可以下载所有系统声音 UISounds.zip ,聆听并选择您偏好的一个,然后检查上述表单中的它的
id
-
soundName
:播放自定义声音文件,类型NSString- 将文件拖到Xcode项目
- 传递文件名和扩展名,例如
banner.soundName = @"sound.mp3"
showDetailOrHideWhenClickLongText
:点击长文本横幅时,将其展开至全高度或隐藏,YES = 展开/NO = 隐藏,默认为 YES
自定义样式
#import <EBCustomBannerView.h>
2种使用方式
1.立即创建和显示
UIView *view = ...;//the view want to show
[EBCustomBannerView showCustomView:view block:^(EBCustomBannerViewMaker *make) {
make.portraitFrame = ...;//frame in portrait
make.portraitMode = EBCustomViewAppearModeTop;//appear from top in portrait
make.soundID = 1312;
make.stayDuration = 3.0;
//......
}];
2.创建后显示
UIView *view = ...;//the view want to show
//1.
EBCustomBannerView *customView = [EBCustomBannerView customView:view block:^(EBCustomBannerViewMaker *make) {
make.portraitFrame = ...;
make.portraitMode = EBCustomViewAppearModeTop;
make.soundID = 1312;
make.stayDuration = 3.0;
//......
}];
//2.
[customView show];
//[customView hide];
参数
portraitFrame
:纵向视图的帧,默认为view.frame
,类型为CRect
landscapeFrame
:横向视图的帧,默认为view.frame
,类型为CRect
soundID
:与系统样式
相同soundName
:与系统样式
相同animationDuration
:与系统样式
相同stayDuration
:与系统样式
相同portraitMode
:在纵向视图中从顶部/底部/左侧/右侧/中心出现,默认为顶部,类型为枚举landscapeMode
:在横向视图中从顶部/底部/左侧/右侧/中心出现,默认为顶部,类型为枚举centerModeDurations
:中心出现动画的时间,默认为 @[@0.3, @0.2, @0.1],animationDuration
在中心动画中对默认值无效
处理点击事件并传递值(系统样式)
- 为
EBBannerViewDidClickNotification
添加观察者并处理点击事件 - 在初始化横幅时传递一个对象,并在点击时获取它
#import <EBBannerView.h>
{
...
EBBannerView *banner = [EBBannerView bannerWithBlock:^(EBBannerViewMaker *make) {
...
make.object = aObject;
}];
}
{
...
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(bannerViewDidClick:) name:EBBannerViewDidClickNotification object:nil];
}
-(void)bannerViewDidClick:(NSNotification*)noti{
NSLog(@"%@",noti.object);
}