EBBannerViewSwift 1.1.3

EBBannerViewSwift 1.1.3

pikacode 维护。



  • pikacode
Swift beta 版本现已推出!Swift README.md
Swift beta 版本现已推出!中文 Swift README.md

查看中文文档 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:图标,默认为应用图标,类型UIImage
  • title:标题,默认为应用名称,类型NSString
  • date:日期,默认为本地化字符串 @"现在" = @"now",类型NSString
  • content:内容,类型NSString
  • showAnimationDuration:动画时间(显示横幅),类型NSTimeInterval,默认为0.3
  • hideAnimationDuration:动画时间(隐藏横幅),类型NSTimeInterval,默认为0.5
  • stayDuration:横幅在隐藏前的持续时长,类型NSTimeInterval,默认为4.0
  • swipeDownStayDuration:长文本横幅展开时持续隐藏的时长,默认为4.0。您可以将它设置为较大的值,这样横幅将不会隐藏,直到用户点击它或调用'hide'
  • object:创建时可以设置,点击时通过添加观察者获取(见下文),默认为content,类型id
  • soundID:横幅显示时播放的声音(当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);
}