gpt4 book ai didi

iphone - 在 iPhone 中向 ScrollView 添加多个按钮时如何避免延迟?

转载 作者:行者123 更新时间:2023-11-29 03:40:50 26 4
gpt4 key购买 nike

我需要向 UIScrollview 添加多个按钮(取决于数组数量)。现在我使用以下代码。此代码工作正常,但此功能需要更多时间(添加按钮延迟)。请帮忙我..

   for (int i=0; i< [imageArray count]; i++) {
NSURL *url = [NSURL URLWithString:[[imgArray objectAtIndex:i]objectForKey:@"url"]];
UIImage *img = [UIImage imageWithData:[NSData dataWithContentsOfURL:url]];
UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];
button1.frame = CGRectMake(xp, 0, 75, 75);
[button1 setImage:img forState:UIControlStateNormal];
[button1 addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
button1.layer.borderColor = [UIColor whiteColor].CGColor;
button1.layer.borderWidth = 2.0;
[mScrollView addSubview:button1];
xp += button1.frame.size.width+15;
}

最佳答案

因为您正在从服务器加载图像,所以它会阻塞您的主线程,直到图像完全加载。尝试在不同的线程中加载图像

下面是一个示例,展示了如何在不同线程上加载图像

将按钮对象和 url 添加到数组中(这可以写在 for 循环中)

 NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:0];
[array addObject:cell.businessLogoImageView];
[array addObject:@"your Url"];
[NSThread detachNewThreadSelector:@selector(loadImage:) toTarget:self withObject:array];
[array release];
array = nil;

现在实现loadImage

-(void)loadImage:(NSArray *)objectArray
{
UIImageView *tempImageView = (UIImageView *)[objectArray objectAtIndex:0];
tempImageView.image=[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[objectArray objectAtIndex:1]]]];

}

关于iphone - 在 iPhone 中向 ScrollView 添加多个按钮时如何避免延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18486108/

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