一、效果图

二、使用方法

  使用简单,4行代码集成。

_bubbleView  = [[LFBubbleView alloc] initWithFrame:CGRectMake(, , , )];
_bubbleView.lbTitle.text = @"提示文字";
[self.view addSubview:_bubbleView];
[_bubbleView showInPoint:CGPointMake(_viewTarget.center.x, _viewTarget.center.y - 8)];

  更多方法见.h文件,有详细注释,比如设置颜色、边框色、圆角、三角大小、三角位置、按比例设置三角位置、三角方向。还暴露一个容器可让用户自定义气泡中的内容。

//
// LFBubbleView.h
// LFBubbleViewDemo
//
// Created by 张林峰 on 16/6/29.
// Copyright © 2016年 张林峰. All rights reserved.
// #import <UIKit/UIKit.h> typedef NS_ENUM(NSInteger, LFTriangleDirection) {
LFTriangleDirection_Down,
LFTriangleDirection_Left,
LFTriangleDirection_Right,
LFTriangleDirection_Up
}; /**样式配置*/
@interface LFBubbleViewConfig : NSObject <NSCopying> @property (nonatomic, strong) UIColor *color;//背景色,默认红色半透明
@property (nonatomic, strong) UIColor *textColor;//字体颜色,默认白色
@property (nonatomic, strong) UIFont *font;//字体,默认12
@property (nonatomic, strong) UIColor *borderColor;//边框色,默认无
@property (nonatomic, assign) CGFloat borderWidth;//默认无
@property (nonatomic, assign) CGFloat cornerRadius;//圆角,默认5
@property (nonatomic, assign) CGFloat triangleH;//三角形高.默认7
@property (nonatomic, assign) CGFloat triangleW;//三角形底边长默认7
@property (nonatomic) UIEdgeInsets edgeInsets;//label四周边距,默认(5,5,5,5) @end /**
(可选)配置LFBubbleView默认样式的单例,只需应用启动时配置一次即可
作用:如果多处使用LFBubbleView,配置默认样式,就不用繁琐的设置那些属性
*/
@interface LFBubbleViewDefaultConfig : NSObject @property (nonatomic, strong) LFBubbleViewConfig *config;//有默认值 + (instancetype)sharedInstance; @end /**
气泡提示框
*/
@interface LFBubbleView : UIView @property (nonatomic, strong) LFBubbleViewConfig *config;//设置样式bubble.config = config或bubble.config.xx = xx。有默认值
@property (nonatomic, strong) UIView *contentView;//容器,可放自定义视图,默认装文字
@property (nonatomic, strong) UILabel *lbTitle;//提示文字
@property (nonatomic) LFTriangleDirection direction;//三角方向,默认朝下
@property (nonatomic, assign) CGFloat dismissAfterSecond;//hideAfterSecond秒后自动消失,不设置或0则不自动消失
@property (nonatomic, strong) NSString *showOnceKey;//如果设置了Key,该气泡只显示一次(比如某个新功能只需要提示用户一次) //优先使用triangleXY。如果triangleXY和triangleXYScale都不设置,则三角在中间
@property (nonatomic, assign) CGFloat triangleXY;//三角中心的x或y(三角朝上下代表x,三角朝左右代表y)
@property (nonatomic, assign) CGFloat triangleXYScale;//三角的中心x或y位置占边长的比例,如0.5代表在中间 /**
* 显示
*
* @param point 三角顶端位置
*/
- (void)showInPoint:(CGPoint)point; /**来回平移动画*/
- (void)doTranslationAnimate; /**弹跳动画*/
- (void)doSpringAnimate; @end

这只是LFKit的一个子库,LFKit地址https://github.com/zhanglinfeng/LFKit

只需LFBubbleView的 pod 'LFKit/Component/LFBubbleView'

需要LFKit中所有自定义控件的pod 'LFKit/Component'

需要总库的 pod 'LFKit'

iOS 灵活,简易,扩展性强的气泡提示框LFBubbleView(含源码)的更多相关文章

  1. Android ImageCache图片缓存,使用简单,支持预取,支持多种缓存算法,支持不同网络类型,扩展性强

    本文主要介绍一个支持图片自动预取.支持多种缓存算法的图片缓存的使用及功能.图片较大需要SD卡保存情况推荐使用ImageSDCardCache. 与Android LruCache相比主要特性:(1). ...

  2. 【Java/Android性能优5】 Android ImageCache图片缓存,使用简单,支持预取,支持多种缓存算法,支持不同网络类型,扩展性强

    本文转自:http://www.trinea.cn/android/android-imagecache/ 主要介绍一个支持图片自动预取.支持多种缓存算法.支持二级缓存.支持数据保存和恢复的图片缓存的 ...

  3. 【Java/Android性能优 4】PreloadDataCache支持预取的数据缓存,使用简单,支持多种缓存算法,支持不同网络类型,扩展性强

    本文转自:http://www.trinea.cn/android/preloaddatacache/ 本文主要介绍一个支持自动向前或向后获取新数据的缓存的使用及功能.Android图片内存缓存可见I ...

  4. Arc Engine 中添加气泡提示框

    一.在ArcMap中的定位操作 已知若干点的经纬度坐标,要求在地图中进行定位: 1.通过Tool >Add X Y data 定位点,注意选择地理坐标系下的wgs 1984坐标系: 2.定位后的 ...

  5. Ocelot简易教程(七)之配置文件数据库存储插件源码解析

    作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9852711.html 上篇文章给大家分享了如何集成我写的一个Ocelot扩展插件把Ocelot的配置存储 ...

  6. Qt显示Linux desktop natification气泡提示框

    在现代Linux桌面环境上我们时常可以看到类似的消息框: 这些消息框常用在如下场景: 即时聊天软件的新消息 闹钟定时提示 电池电量提示 邮件消息 长耗时操作的完成提示 在freedesktop.org ...

  7. iOS bug 之 H5 页面没有弹出提示框

    描述:在安卓上有提示框,但是在iOS上没有提示框. step 1: 失误,是我没有在正确的位置设置网址. step 2: 修改之后,测试页能弹出提示框,但是正式的页面没有提示框. step 3: 我输 ...

  8. arcgis api 3.x for js 地图加载多个气泡窗口展示(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  9. iOS头条新闻App、自动布局、省市区联动、登录按钮动画、Alert弹框效果等源码

    iOS精选源码 LEEAlert -- 优雅的Alert ActionSheet 登录按钮 省市区三级联动 JHViewCorner - 一行代码搞定圆角 JHFrameLayout - 一行代码实现 ...

随机推荐

  1. DOM操作的一个小坑

    最近在苦读<JavaScript高级程序教程>,真不愧是前端圣经,学到了很多东西. nodeList.NameNodeMap.HTMLCollection这三个集合是动态的!每当文档发生变 ...

  2. iBatis之Iterator的使用

    一:前言 现在这个项目使用的是iBatis,我刚刚开始的时候说是用MyBatis,因为我以前用过,觉得还是比较好用的啊,而且不像iBatis样,查什么一个字段不能多也不能少,觉得好无语啊. 二:内容 ...

  3. Nginx使用教程----提高Nginx网络吞吐量之buffers优化

    请求缓冲区在NGINX请求处理中起着重要作用. 在接收到请求时,NGINX将其写入这些缓冲区. 这些缓冲区中的数据可作为NGINX变量使用,例如$request_body. 如果缓冲区与请求大小相比较 ...

  4. linux认证上网

    公司上网需要认证,linux命令行模式:curl -d "opr=pwdLogin&userName=用户名&pwd=密码&rememberPwd=1" h ...

  5. css划斜线

    http://stackoverflow.com/questions/18012420/draw-diagonal-lines-in-div-background-with-css

  6. bzoj 1861 splay

    就是裸地splay,然后自己写的不是特别好,tle了,最近时间比较紧迫,有时间了改下,在此记录 另附转载pascal AC代码最下面 /******************************** ...

  7. poj 2406 Power Strings(kmp循环节)

    题目链接:http://poj.org/problem?id=2406 题目大意:如果n%(n-next[n])==0,则存在重复连续子串,长度为n-next[n]. 例如:      a    b  ...

  8. [Leetcode Week7]Jump Game

    Jump Game 题解 原创文章,拒绝转载 题目来源:https://leetcode.com/problems/jump-game/description/ Description Given a ...

  9. Map占用内存大小评估

    public class test { private static java.util.HashMap<String, String> needQueryResProductList = ...

  10. docker常用命令,安装常用实例,一步式安装mysql

    刚来公司,跟公司测试环境项目的服务器,环境是linux Centos7.2  所有的tomcat都挂载在docker容器下,所以也就学习了一些简单的docker指令(学习之前请了解什么是docker, ...