Objective c 将UIImageView裁剪为9块

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

我需要将UIImage拆分为9个按钮。现在我有九个按钮正好占据了整个iPad屏幕,但我想在九个空间中裁剪大图像,特别是在按钮的大小/位置上

现在我有了这个代码:

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。马丁给了我一个正确的答案。:-)噢,马丁,谢谢你!我不知道我以前怎么搞不懂。