我设置了一系列约30px x 30px的按钮。我的图像大小为300px x 300px。
当我将图像设置为图像或背景图像时,图像会自动调整大小以适合按钮。我真正希望它能够显示30 x 30的图像部分。
我尝试了几种方法,但它们似乎毫无结果。我试过骑 - (void)layoutSubviews但这导致图像比按钮本身更大并引起其他奇怪的行为。
我也尝试修改图像视图属性,但这也不起作用。
最后我尝试过使用imageEdgeInsets,但这又有类似于覆盖layoutSubviews的行为。
我想这样做,因为我有许多按钮可以构成完整的画面,但这些按钮会移动。另一种方法是将图像拆分为绘图样式包,但从长远来看,这将导致额外的工作,并且更喜欢以编程方式执行此操作。任何有关如何进行的指导将不胜感激。
答案 0 :(得分:2)
在发布问题之后,我进一步调查并发现了以下内容。
这方面的一些方面与位于create UIImageView with portion of image file
的问题非常相似 UIImage* img = [UIImage imageNamed:currentImage];
CGRect imgFrame = CGRectMake(x, y, 30, 30);
CGImageRef imageRef = CGImageCreateWithImageInRect([img CGImage], imgFrame);
UIImage* subImage = [UIImage imageWithCGImage: imageRef];
[imageButton setBackgroundImage:subImage forState:UIControlStateNormal];
一旦完成,subImage可以简单地添加为uibutton的图像,例如: -
[imageButton setBackgroundImage:subImage forState:UIControlStateNormal];