【转盘案例-给按钮设置图片-旋转 Objective-C语言】

一、接下来,我们来说这个设置图片

通知

1.现在是没有图片的,全是红色,怎么给它设置图片,

通知

看一下素材,

通知

是一张大图,怎么给它切割一下,

还有一张图片,是Pressed情况,是黄色的,

通知

图片的大小、内容都是一样的、

我们这个示例程序里边,你选中了以后,是黄色的,

通知

默认的情况,是红色的,

后面这个选中的红色,是这个按钮的背景图片,setBackgroundImage,这个文字,是这个btn的内容图片,setImage,

这是两个东西啊,

2.我们先来设置这个文字图片啊,背景之后再来说,那个简单,

设置这个图片,它本身是一张大图,我们要给它切一下才行,

通知

我们先写一个方法,专门用来切图片,

这个方法是:我传过来一张大图片,返回的是一张小图片,

那么,我传过来,还需要一个参数,就是i,

我们要根据它的i,计算frame,切哪一部分,切哪一个Rect,

我们切的第一个,首先,它的x,是多少,

通知

x = 0,

y = 0,

w = 图片的宽 / 12,

h = 图片的高,

然后呢,第二个,

通知

x = w ,

y = 0,

w = 图片的宽 / 12,

h = 图片的高,

然后呢,第i个,

通知

x = w * i,

y = 0,

w = 图片的宽 / 12,

h = 图片的高,

我们先来写一个方法:

// 根据大图 切割出来一部分图片

- (UIImage *)clipImageWithImage:(UIImage *)image withIndex:(NSInteger) index{

}

tz1

然后呢,在这个里边,我们来切,怎么来切,这个里边,有一个方法,叫做CGImageCreateImageInRect(CGImageRef image,CGRect rect)

通知

CGImageCreateWithImageInRect(CGImageRef image,CGRect rect)

通知

输入两个参数:

1)CGImageRef image:你把大图的CGImage给我,再给我一个Rect,那么,我就能够去给你返回一个切好的CGImage,

通知

然后,我们再把这个CGImage,转化成一个UIImage的类型,返回就可以了,

第一个参数:CGImageRef image:直接把大图传过来,来一个image.CGImage,它要的是一个CGImage的类型,

通知

2)CGRect rect:计算一下Rect,

// 计算rect

CGFloat w;

我们先拿CGImageRef imageRef接一下吧,

通知

CGImageRef imageRef = CGImageCreateWithImageInRect(image.CGImage,CGRect rect);

return imageRef

我们要返回的是一个UIImage,怎么从CGImageRef,转化成UIImage,

实际上,跟BezierPath一样啊,我们说,bezierPath,类方法,

bezierPathWithCGPath,

imageWithCGImage,

image也是一样啊,imageWithCGImage,

哦,先得alloc一下啊,

return [[UIImage alloc] initWithCGImage:(CGImageRef)];

tz1

return [[UIImage alloc] initWithCGImage:(CGImageRef)];

通知

把这个imageRef传过来,就搞定了,

通知

接下来,我们去计算rect,

1)宽w = image.size.width / 12;

通知

2)高h = image.size.height;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风清晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值