0

可能重复:
使用部分图像文件创建 UIImageView

我已经设置了一系列大约 30px x 30px 的按钮。我有一个大小为 300 像素 x 300 像素的图像。

当我将图像设置为图像或背景图像时,图像会自动调整大小以适合按钮。我真正想做的是显示图像的 30 x 30 部分。

我已经尝试了几种方法来做到这一点,但它们似乎没有结果。我尝试过骑 -(void)layoutSubviews 但这会导致图像大于按钮本身并导致其他奇怪的行为。

我也尝试过修改图像视图属性,但这也不起作用。

最后,我尝试使用 imageEdgeInsets 但这又具有类似的覆盖 layoutSubviews 的行为。

我想这样做,因为我有许多按钮可以构成全图,但这些按钮会移动。另一种方法是将图像拆分为绘画样式包,但从长远来看,这将导致额外的工作,并且更愿意以编程方式执行此操作。任何有关如何进行的指导将不胜感激。

4

1 回答 1

2

发布问题后,我进一步调查并遇到以下问题。

这方面的某些方面与位于create UIImageView with part 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];
于 2012-12-29T02:51:39.120 回答