Flea 让iOS弹框更性感

GitHub地址Github - DanisFabric/Flea

Flea

Flea 是iOS中对UIAlertController的替换方案,提供了友好、灵活的API对用户进行弹框提示。

系统需求

  • iOS8.0+
  • Swift 3.0+

截图

default.png
custom.png

安装

Carthage

将下面的语句添加到Cartfile中,并执行carthage update命令

$ github "DanisFabric/Flea"

使用

ActionSheet

let actionFlea = Flea(type: .ActionSheet(title: "Do you love Flea", subTitle: "If you love it, you can star Flea on GitHub"))
actionFlea.titleColor = FleaPalette.DarkGray
actionFlea.subTitleColor = FleaPalette.Green
actionFlea.addAction("Sorry, I don't love it", color: FleaPalette.Blue, action: { 
    //        
})
actionFlea.addAction("I love it", color: FleaPalette.Red, action: { 
    //           
})
actionFlea.show()

Alert

let alert = Flea(type: .Alert(title: "Do you love Flea", subTitle: "If you love Flea, you may start it on GitHub"))
alert.addAction("No, thanks", action: { 
                
})
alert.addAction("I love Flea", action: { 
                
})
alert.addAction("What is Flea", color: FleaPalette.Red, action: { 
                
})
alert.show()

notification

let notificationFlea = Flea(type: .Notification(title: "Hello, welcome to use Flea"))
notificationFlea.setNotificationAction("Thanks", action: { 
                
})
notificationFlea.baseAt(navigationCotnroller: navigationController!).stay(2).show()

自定义

Flea 十分灵活,用户能够填充任意的View,依托于Flea弹框展示。你可以通过众多参数来配置Flea的行为。

Direction

Direction决定从弹框从哪个方向进入屏幕

flea.direction = .Top       // 默认

public enum Direction {
    case Top
    case Left
    case Bottom
    case Right
}

Achor

Anchor 决定弹框显示的位置

flea.anchor = .Edge             // 默认

public enum Anchor {
    case Edge                   // 贴边
    case Center                 // 停留在中间
}

Style

Style 是弹框的显示风格

flea.stype = .Normal(UIColor.WhiteColor())  // 默认

public enum FleaStyle {
    case Normal(UIColor)                    // 纯色
    case Blur(UIBlurEffectStyle)            // 模糊
}

BackgroundStyle

BackgroundStyle 决定弹框是时的背景样式

flea.backgroundStyle = .Clear       //默认

public enum FleaBackgroundStyle {
    case Dark           // 暗色阴影
    case Clear      // 透明,不能点击背景后的组件
    case None           // 透明,可以透过背景点
}

其他属性

  • cornerRadius: 弹出框的圆角大小, 默认为0
  • duration: 弹框停留时长,时间超过duration,弹框自动消失。默认为0,不会 自动消失

方法

Flea 提供了很多方法用于个性化的需求,并且允许链式调用。

flea.baseAt(navigationCotnroller: navigationController!).stay(2).fill(testView).show()
baseAt

Flea允许用于基于windowUINavigationControllerUITabBarController 不同的场景进行弹框。这得得益于baseAt系列方法。

// 在view中弹框,如果behind不为空且behind为view的subView,那么弹框的层级低于behind
public func baseAt(view view: UIView, behind: UIView? = nil) -> Self

// 在navigationController的view内弹框,层级低于navigationBar,不会遮盖住navigationBar
public func baseAt(navigationCotnroller navigationController: UINavigationController) -> Self

// 在tabBarController的view内弹框,层级低于tabBar,不会遮盖住tabBar
public func baseAt(tabBarController tabBarController: UITabBarController) -> Self

fill

Flea 通过fill(_:)方法向弹框中指定内容,多次使用fill(_:)方法,只有最后一次生效。

public func fill(view: UIView) -> Self

Flea的弹框的具体大小是根据fill(_:)内指定的view的size大小来决定的。

stay

stay(_:)为弹框指定停留时间,与直接设置duration的效果相同

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,328评论 0 11
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,198评论 4 61
  • 1、 这两天最热门的新闻除了吐槽12306就是e租宝风波了。如果买不买得到火车票还是个回家的小问题,对于e租宝涉及...
    刘主编阅读 1,323评论 0 49
  • 从实验室出来已经是晚上9点半了,出国的时间定在今年的9年,郭毅夫还有4个月的时间把手头的项目收尾之后出发,经常在实...
    胡偲阅读 2,377评论 0 0
  • Service是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件。服务可由其他应用组件启动,而且即使用户...
    欢欢欢欢思阅读 542评论 0 0