iOS 自定义绘制气泡
来源:互联网 发布:voip网络电话机 编辑:程序博客网 时间:2024/04/30 03:05
效果图:
代码如下:
#import "PopView.h"
#define kPopupTriangleHeigh 5
#define kPopupTriangleWidth 6
#define kPopupTriangleTopPointX 3 * (self.frame.size.width - kPopupTriangleWidth)/20.0f
#define kBorderOffset 0//0.5f
@implementation PopView
- (instancetype)initWithFrame:(CGRect)frame
{
if (self = [superinitWithFrame:frame]) {
self.backgroundColor = [UIColorclearColor];
[self initUI];
}
return self;
}
- (void)initUI
{
_label = [[UILabelalloc] init];
_label.textColor = [UIColorcolorFromHex:0x666666];
_label.font = [UIFontsystemFontOfSize:11];
_label.numberOfLines =0;
_label.text =@"地址作为评估贷款额度的重要依据,需精确到门牌号\n请按如下格式填写:\n小区类:XX路XX号XX小区XX栋XX室\n农村类:XX县XX镇XX村XX组\n大厦类:XX路XX号XX大厦XX层XX室";
[selfaddSubview:_label];
[_label mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.mas_left).mas_equalTo(10);
make.centerX.mas_equalTo(self.mas_centerX);
make.top.mas_equalTo(self.mas_top).mas_equalTo(20);
}];
}
-(void)drawRect:(CGRect)rect{
[super drawRect:rect];
CGFloat viewW = rect.size.width;
CGFloat viewH = rect.size.height;
CGFloat strokeWidth = 0.2;
CGFloat borderRadius = 5;
CGFloat offset = strokeWidth + kBorderOffset;
CGContextRef context =UIGraphicsGetCurrentContext();
CGContextSetLineJoin(context,kCGLineJoinRound); //
CGContextSetLineWidth(context, strokeWidth);// 设置画笔宽度
CGContextSetStrokeColorWithColor(context, [UIColorcolorFromHex:0x3082f2].CGColor);// 设置画笔颜色
CGContextSetFillColorWithColor(context, [UIColorwhiteColor].CGColor);// 设置填充颜色
CGContextBeginPath(context);
CGContextMoveToPoint(context, borderRadius+offset,kPopupTriangleHeigh + offset);
CGContextAddLineToPoint(context,kPopupTriangleTopPointX - kPopupTriangleWidth /2.0 + offset,kPopupTriangleHeigh + offset);
CGContextAddLineToPoint(context, kPopupTriangleTopPointX, offset);
CGContextAddLineToPoint(context,kPopupTriangleTopPointX + kPopupTriangleWidth /2.0 +offset,kPopupTriangleHeigh+offset);
CGContextAddArcToPoint(context, viewW-offset,kPopupTriangleHeigh+offset, viewW-offset, kPopupTriangleHeigh+offset + borderRadius, borderRadius-strokeWidth);
CGContextAddArcToPoint(context, viewW-offset, viewH - offset, viewW-borderRadius-offset, viewH - offset, borderRadius-strokeWidth);
CGContextAddArcToPoint(context, offset, viewH - offset, offset, viewH - borderRadius - offset, borderRadius-strokeWidth);
CGContextAddArcToPoint(context, offset, kPopupTriangleHeigh + offset, viewW - borderRadius - offset, kPopupTriangleHeigh + offset, borderRadius-strokeWidth);
CGContextClosePath(context);
CGContextDrawPath(context,kCGPathFillStroke);
}
- (void)dismiss
{
__weak __typeof(self) weakSelf =self;
[UIViewanimateWithDuration:0.2animations:^{
weakSelf.alpha = 0;
weakSelf.frame = CGRectMake(weakSelf.frame.origin.x +kPopupTriangleTopPointX , weakSelf.frame.origin.y,0, 0);
} completion:^(BOOL finished) {
[_labelremoveFromSuperview];
[weakSelf removeFromSuperview];
}];
}
@end
- iOS 自定义绘制气泡
- iOS 绘制气泡图案
- 绘制气泡
- iOS 自定义百度地图标注气泡
- IOS百度地图气泡内容自定义
- iOS-百度地图添加标注自定义气泡
- IOS百度地图自定义大头针和气泡
- IOS百度地图自定义大头针和气泡
- iOS 自定义绘制内容
- iOS自定义绘制
- 绘制文字气泡样式
- requestAnimate 绘制气泡
- Jquery绘制气泡墙
- 绘制一个气泡
- ios 地图 自定义 callout (气泡) (可同时显示多个气泡)
- 百度地图IOS 自定义图标气泡viewForAnnotation不调用
- iOS百度地图自定义大头针和气泡内的内容
- iOS Swift3.0地图自定义标注和气泡
- 简单的收获和理解
- ArangoDB入门教程(三)java连接ArangoDB数据库
- 第42届ACM国际大学生程序设计竞赛 亚洲区域赛 西安站 总结
- POJ 3349.Snowflake Snow Snowflakes
- Ubuntu 16.04LTS 安装 MATLAB 2014B
- iOS 自定义绘制气泡
- PHP面向对象 知识点总结
- 数据转图
- 扫雷
- php中的匿名函数和闭包(closure)及use的作用
- MyEclipse中复制项目之后部署项目出现不能部署,纠正问题之后出现404
- 2017 CCPC 秦皇岛 A:Balloon Robot
- PL/SQL 测试 调用PROCEDURE 和FUNCTION
- 安装Eclipse Jee Oxygen后项目的js和json文件报错