Objective c 将UIImageView裁剪为9块
我需要将UIImage拆分为9个按钮。现在我有九个按钮正好占据了整个iPad屏幕,但我想在九个空间中裁剪大图像,特别是在按钮的大小/位置上 现在我有了这个代码:Objective c 将UIImageView裁剪为9块,objective-c,crop,cgrect,Objective C,Crop,Cgrect,我需要将UIImage拆分为9个按钮。现在我有九个按钮正好占据了整个iPad屏幕,但我想在九个空间中裁剪大图像,特别是在按钮的大小/位置上 现在我有了这个代码: CGRect cropRect = CGRectMake(button.frame.origin.x, button.frame.origin.y, button.frame.size.width, button.frame.size.height); CGImageRef croppedImage = CGImageCreateWit
CGRect cropRect = CGRectMake(button.frame.origin.x, button.frame.origin.y, button.frame.size.width, button.frame.size.height);
CGImageRef croppedImage = CGImageCreateWithImageInRect([image CGImage], cropRect);
[button setImage:image forState:UIControlStateNormal];
CGImageRelease(croppedImage);
但是,所有按钮都显示相同的图像
有没有人知道发生了什么以及如何解决这个问题(将图像裁剪成九块,X、Y、按钮的宽度和重量)
我在这方面是个新手
--编辑--
我刚刚改变了:
[button setImage:[UIImage imageWithCGImage:croppedImage] forState:UIControlStateNormal];
谢谢你,马丁·皮尔奇!:-) 您正在将原始图像设置为按钮。试着这样设置:
[button setImage:[UIImage imageWithCGImage:croppedImage] forState:UIControlStateNormal];
希望它有帮助您的
cropRect
可能会导致每个按钮的值相同,可能是因为它的来源是(0,0)
——您应该使用NSLog
或类似工具检查此值。您需要确保每个按钮的cropRect
原点不同。您可以使用for循环或类似的方法来完成此操作。@modocache,原点正在正常更改。哦,我的错。当你说“所有按钮都显示相同的图像”时,它们会显示哪个图像?第一个按钮使用框架的那一组,还是最后一个?或者两者都没有?谢谢你的帮助,@modocache。马丁给了我一个正确的答案。:-)噢,马丁,谢谢你!我不知道我以前怎么搞不懂。