ios 开发学习日志 自定义alertView 3

 一. UIBezierPath

http://www.henishuo.com/uibezierpath-draw/

一. CAShapeLayer的属性设置

1 .线颜色

@property CGColorRef strokeColor

2.填充色

@property CGColorRef fillColor

3. 填充规则

@property (copy) NSString *fillRule

4. 线端点类型

@property (copy) NSString *lineCap

5.线连接类型

@property (copy) NSString *lineJoin



6.线宽

@property CGFloat lineWidth


7.线型模板

@property (copy) NSArray *lineDashPattern
这是一个NSNumber的数组,索引从1开始记,奇数位数值表示实线长度,偶数位数值表示空白长度

8.线型模板的起始位置

@property CGFloat lineDashPhase

9.最大斜接长度

@property CGFloat miterLimit


斜接长度指的是在两条线交汇处内角和外交之间的距离

只有lineJoin属性为KCALineJoinMiter时miterLimit才有效

边角的角度越小,斜接长度就越大

为了避免斜接长度过长,我们可以使用miterLimit属性

如果斜接长度超过miterLimit的值,边角会以lineJoin的“bevel”即kCALineJoinBevel类型来显示



10. 部分绘线

@property CGFloat strokeStart
@property CGFloat strokeEnd


二. UIBezierPath 贝塞尔曲线的常用绘图方法

1.矩形

+(UIBezierPath *)bezierPathWithRect:(CGRect)rect

2.矩形内切椭圆

+(UIBezierPath)bezierPathWithOvalInRect:(CGRect)rect


3.圆角矩形

+(UIBezierPath *)bezierPathWithRoundedRect:(CGRect)rect cornerRadius:(CGFloat)cornerRadius

4.可设置的圆角矩形

+(UIBezierPath *)bezierPathWithRoundedRect:(CGRect) rect byRoundingCorners: (UIRectCorner) corners cornerRadii:(CGSize) cornerRadii

corners有一下几种类型:

UIRectCornerTopLeft,

UIRectCornerTopRight,

UIRectCornerBottomLeft,

UIRectCornerBottomRight,

UIRectCornerAllCorners

cornerRadii表示的是四个圆角平成的椭圆的长、短半径尺寸


5.圆弧

+(UIBezierPath *)bezierPathWithArcCenter:(CGPoint) center radius:(CGFloat)radius startAngle:(CGFloat)startAngle endeAngle:(CGFloat)endAngle clockwise:(BOOL)clockwise

-(void)addArcWithCenter:(CGPoint)center radius:(CGFloat) radius startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise:(BOOL)clockwise


6.直线

-(void)addLineToPoint:(CGPoint)point

7.曲线

-(void)addCurveToPoint:(CGPoint)endPoint controlPoint1:(CGPoint)controlPoint1 controlPoint2:(CGPoint)controlPoint2

8.二元曲线

-(void)addQuadCurveToPoint=(CGPoint)endPoint controlPoint:(CGPoint)controlPoint

UIBezierPath的属性设置(这些属性在使用CAShapeLayer时,只遵循CAShapeLayer的设置)

1.线宽

@property(nonatomic) CGFloat lineWidth


2.端点类型

@property(nonatomic) CGLineCap lineCapStyle


3.连接类型

@property(nonatomic) CGLineJoin LineJoinStyle


4.设置线型

-(void)setLineDash:(const CGFlot *)pattern count:(NSInteger)count phase:(CGFloat)phase
pattern: C类型的线型。 如:(CGFloat dashStyle[]={1.0f,2.0f);

count:pattern 中的数据个数

phase:开始画线型的起始位置


CAGradientLayer

产生平滑过渡色

interface ViewController ()
@property (nonatomic,weak) IBOutlet UIView * containerView;
@end

@implementation ViewController
-(void)viewDidLoad{
   [sepr viewDidLoad];
CAGradientLayer *gradientLayer=[CAGradientLayer layer];
gradientLayer.frame=self.countainerView.bounds;
[self.containerView.layer addSublayer:gradientLayer];

// set gradient colers
gradientLayer.colors=@[(_bridge id) [UIColor redColor].CGColor, (_bridge id) [UIColor blueColor].CGColor];

// set gradient start and points
gradientLayer.startPoint=CGPointMake(0,0);
gradientLayer.endPoint=CGPointMake(1,1);
}
@end<img src="https://img-blog.csdn.net/20140521102444843" alt="" style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);" />

CAGradientLayer的属性设置

1类型

@property (copy) NSString *type
NSString *const kCAGradientLayerAxial  即线性梯度变化


2.颜色

@property(copy) NSArray *colors

3.位置参数

@property (copy) NSArray *locations
颜色的区间分布,location的数组长度要和colors一致,取值范围(0,1),而且必须是单调递增的

代码增加:

gradientLayer.locations=@[NSNumber numberWithFloat:0.0, NSNumber numberWithFloat:0.2];

4.startPoint和endPoint

@property CGPoint startPoint,endPoint;
取值都是相对于lay er的bounds的,startPoint默认值为(0.5,0),endPoint默认值为(0.5,1)

gradientLayer.startPoint 分别设为 CGPointMake(00); 

 CGPointMake(0.250); 

CGPointMake(0.75,0)


CGPointMake(1,0)


startPoint和endPoint表示的渐变方向,location是渐变区域


http://blog.csdn.net/iunion/article/details/26221213







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值