gpt4 book ai didi

iphone - ipad ScrollView 导致 malloc 为图像大小的 40 倍

转载 作者:行者123 更新时间:2023-12-03 20:35:49 26 4
gpt4 key购买 nike

请耐心等待,因为我是 obj-c 的新手,但我有一个 UIScrollView 和一个分段按钮,可以在 ScrollView 中显示的 2 个图像之间切换。每个图像都很大,大约 500Kb,但它们每个都会导致 20+ MB 的分配并导致我的应用程序崩溃。

     - (void)viewDidLoad {
[bvpiscrollview setContentSize:CGSizeMake(768, 2484)];
UIImage *loadBvImage = [UIImage imageNamed:@"bpi_1536x4965v2.png"];
bvpiimg.image = loadBvImage;
[loadBvImage release];
[super viewDidLoad];
}
-(UIView *)viewForZoomingInScrollView:bvpiscrollview{
return bvpiimg;
}

-(IBAction)pidonebutton{
[self.view removeFromSuperview];
}

-(IBAction)segmentedControlIndexChanged{
switch (self.segmentedControl.selectedSegmentIndex)
{
case 0:
[bvpiscrollview setContentSize:CGSizeMake(768, 2484)];
UIImage *loadBvImage = [UIImage imageNamed:@"bpi_1536x4965v2.png"];
bvpiimg.image = loadBvImage;
[loadBvImage release];
break;
case 1:
[bvpiscrollview setContentSize:CGSizeMake(768, 2556)];
UIImage *loadMpImage = [UIImage imageNamed:@"mpi_1536x5110v2.png"];
bvpiimg.image = loadMpImage;
[loadMpImage release];
default:
break;

}
}
- (void)dealloc {
[bvpiimg release];
[bvpiscrollview release];
[segmentedControl release];
[super dealloc];
}
@end

最佳答案

500k RGBA 图像大约是 350 像素的正方形。 1536 x 5110 像素的 RGBA 图像约为 31.4 MB。您似乎混淆了图像大小和文件大小。

所有 iOS 设备支持的最大尺寸为单边 1024 像素,但有些设备支持更大的尺寸。在将大图像添加到 View 层次结构中的 View 之前,尝试将其分割成较小的图 block 。您可以在运行时通过一系列调用CGImageCreateWithImageInRect来剪切图像。我通常选择 512 像素或更小的图 block 。

关于iphone - ipad ScrollView 导致 malloc 为图像大小的 40 倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3313044/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com