view English README.md
Email:[email protected]
QQ群: 345192153
只需一行代码即可:
-
App 在前台时展示跟 iOS9/10/11/12 推送通知一样 UI 的横幅,自动根据系统版本显示不同 UI
-
根据手机是否静音自动播放提示音或振动
-
文字较多时自动支持下拉展开样式
并且可以:
-
自定义横幅的图标、标题、时间、内容、动画时间
-
自定义弹出时的声音,可选用系统提示音,或者自己添加声音文件
-
横竖屏自适应
-
完全自定义弹出的 view,自定义 view 在横竖屏时可以定制不同的 frame
-
自定义 view 在横竖屏时支持分别从不同方向弹出(屏幕上下左右中心)
-
监听点击事件、传值
target 'YourTargetName' do
pod 'EBBannerView'
end
#import <EBBannerView.h>
系统样式有两种使用方式:
根据系统不同自动展示 iOS 9/10/11 的样式,并自动展示 app 名称 图标等。
[EBBannerView showWithContent:@"自定义内容"];
//1.构造 banner,自定义赋值,没有指定的会使用默认值
EBBannerView *banner = [EBBannerView bannerWithBlock:^(EBBannerViewMaker *make) {
make.style = EBBannerViewStyleiOS9;//指定系统样式,不指定自动依据系统显示不同样式
//make.style = 9;//展示 iOS9 样式
make.content = @"MINE eye hath played the painter and hath stelled";
//make.object = ...
//make.icon = ...
//make.title = ...
//make.soundID = ...
}];
//2.展示
[banner show];
(以下参数不赋值时均使用默认值)
style
:需要展示的样式,默认值 系统类型,可以直接传UIDevice.currentDevice.systemVersion.intValue
来自动适配不同系统,类型 enum : NSInteger {9/10/11}icon
:图片,默认值 app 的图标,类型 UIImagetitle
:标题,默认值 app 的名称,类型 NSStringdate
:时间,默认值 NSLocalizedString(@"现在", nil),类型 NSStringcontent
:内容,类型 NSStringshowAnimationDuration
:显示动画时间,默认值 0.3hideAnimationDuration
:隐藏动画时间,默认值 0.5stayDuration
:隐藏之前停留显示的时间,默认值 4,类型 NSTimeIntervalswipeDownStayDuration
:长内容 banner 展开时,hide 之前停留的时间,默认值 4,类型 NSTimeInterval,可以设置一个极大的值使 banner 展开时始终显示,直到用户再次点击 banner 或者手动调用 hide 时才隐藏object
:监听点击事件EBBannerViewDidClickNotification
后可以获取到,见后文,默认值为content
,类型 idsoundID
:播放的提示音(静音时会自动振动),类型 UInt32- 该参数是 iOS 系统自带的声音 id,默认使用的是
三全音
,id = 1312 - 其他系统声音 id 可以在这里查询到 iOS Predefined sounds 备用地址 AudioServices sounds
- 可以在这里 UISounds.zip 下载并试听全部系统声音,然后选择自己想用的声音,根据名称对照上面提供的表格查找到相应的
id
- 该参数是 iOS 系统自带的声音 id,默认使用的是
soundName
:播放自定义的声音文件,类型 NSString- 直接将声音文件拖拽到工程目录
- 赋值时包含拓展名,例 sound.mp3
showDetailOrHideWhenClickLongText
:点击内含长内容的 banner 时是展开所有内容还是收起整个 banner,YES 展开/NO 收起,默认值 YES,类型 BOOL
#import <EBCustomBannerView.h>
自定义样式有两种使用方式:
UIView *view = ...;//需要展示的某个 view
[EBCustomBannerView showCustomView:view block:^(EBCustomBannerViewMaker *make) {
make.portraitFrame = ...;//竖屏时的 frame
make.portraitMode = EBCustomViewAppearModeTop;//竖屏时弹出方向
make.soundID = 1312;//声音
make.stayDuration = 3.0;//停留时间
//......
}];
UIView *view = ...;//需要展示的某个 view
//1.传入 view,并构造必要的参数
EBCustomBannerView *customView = [EBCustomBannerView customView:view block:^(EBCustomBannerViewMaker *make) {
make.portraitFrame = ...;//竖屏时的 frame
make.portraitMode = EBCustomViewAppearModeTop;//竖屏时弹出方向
make.soundID = 1312;//声音
make.stayDuration = 3.0;//停留时间
//......
}];
//2.展示
[customView show];
//[customView hide];
portraitFrame
:竖屏时的 frame,默认值 view.frame,类型 CGRectlandscapeFrame
:横屏时的 frame,默认值 view.frame,类型 CGRectsoundID
:参见系统样式中参数说明soundName
:参见系统样式中参数说明animationDuration
:参见系统样式中参数说明stayDuration
:参见系统样式中参数说明portraitMode
:竖屏时 view 出现的方向,上/下/左/右/中,默认值 Top,类型 enumlandscapeMode
:横屏时 view 出现的方向,上/下/左/右/中,默认值 Top,类型 enumcenterModeDurations
:view 从中心出现的动画时间,默认值 @[@0.3, @0.2, @0.1],中心出现的动画animationDuration
参数无效
- 通过监听
EBBannerViewDidClickNotification
通知,处理点击事件- 如果初始化 banner 的时候传了 object 的值,在点击后可以获取到
- 如果初始化没传,默认是
content
的值
#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);
}