一、效果图

二、使用方法

  使用简单,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. vivo面试学习3(git和svn的区别)

    git和svn有什么区别? svn: 系统特点: 1).集中式版本控制系统(存在一个中央版本库,所有开发人员所使用的代码都是来源于版本库,提交代码也是这个中央版本库) 2).企业内部并行集中开发 3) ...

  2. ARM内核全解析,从ARM7,ARM9到Cortex-A7,A8,A9,A12,A15到Cortex-A53,A57【转】

    转自:http://www.myir-tech.com/resource/448.asp 前不久ARM正式宣布推出新款ARMv8架构的Cortex-A50处理器系列产品,以此来扩大ARM在高性能与低功 ...

  3. python访问网站

    #!/usr/bin/env python # encoding: utf-8 from functools import wraps import requests from lxml import ...

  4. rhel5.5 linux系统下安装Oracle 11g

    一.配置环境变量1.我将环境变量配置写成了一个脚本,将这个脚本copy到一个新建的linux系统.(脚本是本人原创,前2篇文章里有,感兴趣的朋友可以去看看) 2.进入脚本所在的目录. 3.执行脚本,需 ...

  5. 自建yum镜像

    #!/usr/bin/python #-*- coding: utf-8 -*- import requests import sys,logging,traceback from bs4 impor ...

  6. [ Python - 13 ] 批量管理主机必备模块

    批量管理程序必备模块 optparse configparser paramiko optparse模块 简介:        optparse模块主要用来为脚本传递命令参数功能 使用步骤: 1. i ...

  7. ECharts问题--散点图中对散点添加点击事件

    1. 我们这次就没有先讲解怎么使用散点图了,这个跟之前的一些图还是很类似的,不会的可以去官网上面查看 API 使用.我们这次讲解的是为散点图中的散点添加点击事件,然后在图表之外的一个 div 里面显示 ...

  8. Django组件之contenttype的应用

    contenttypes 是Django内置的一个应用,可以追踪项目中所有app和model的对应关系,并记录在ContentType表中. 每当我们创建了新的model并执行数据库迁移后,Conte ...

  9. rtsp 学习

    1.1.   RTSP协议简介 一种应用层协议,可基于tcp或udp协议. Real Time Streaming Protocol或者RTSP(实时流媒体协议),是由Real network 和 N ...

  10. MATLAB求解方程与方程组

    1.      solve函数 ①求解单个一元方程的数值解 syms x; x0 = double(solve(x +2 - exp(x),x)); 求x+2 = exp(x)的解,结果用double ...