如何剪切更大的图像,以适应以编程方式构build的tabBarController中的tabBar图标。
我以编程方式创build了一个选项卡控制器。
现在,我想添加图像到不同的标签,我用它:
self.tabBarItem.image = [UIImage imageNamed:@"Sample_Image.png"];
问题是Sample_image的大小比tab要求的大。
所以只是想知道如何裁剪图像以适应选项卡。
Sample_image is larger in size than is required by tab.
尝试这段代码,因为这将调整所需的图像大小,并返回一个30x30
大小( UITabbar
所需的UITabbar
)的UIImage
实例。
UIImage *image = [UIImage imageNamed:@"Sample_Image.png"]; self.tabBarItem.image = [self imageWithImage:image scaledToSize:CGSizeMake(30, 30)];
添加此方法
- (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize { UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0); [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage; }
将图像重命名为Sample_Image@2x.png
。 这被称为视网膜显示器的像素倍增。
没有@ 2x的iOS不知道它应该应用一个缩放因子,它会被照原样使用,尽pipe它应该减半。
[[[self tabBarController] tabBar] setBackgroundImage:[UIImage imageNamed:@"Sample_Image@2x.png"]];
实际上应该是:
Sample_Image png(45像素左右)
Sample_Image@2x.png所以你只说:
[[[self tabBarController] tabBar] setBackgroundImage:[UIImage imageNamed:@"Sample_Image.png"]];