Я добавляю изображение в subviews scrollView, но только для определенного пользовательского класса AsyncImageView
. Это занимает некоторое время, потому что есть много подзаголовков, и приложение потеряло плавную прокрутку.Поиск класса во многих подзаголовках. Есть ли способ лучше?
NSArray *subviewsArray = [[NSArray alloc] initWithArray:[scrollView subviews]];
for (int j = 0; j < [subviewsArray count]; j++) {
for (AsyncImageView *checkView in [[subviewsArray objectAtIndex:j] subviews]) {
if ([checkView isKindOfClass:[AsyncImageView class]]) {
[[AsyncImageLoader sharedLoader] cancelLoadingImagesForTarget:checkView];
NSString* urlTextEscaped = [[imageInfo objectAtIndex:0] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *URL = [NSURL URLWithString:urlTextEscaped];
if (URL)
{
checkView.imageURL = URL;
}
else
{
NSURL *defaultURL = [NSURL URLWithString:@"http://www.domain.com/user_avatar_default.jpg"];
checkView.imageURL = defaultURL;
}
}
}
}
Есть ли лучший способ получить доступ к представлению, который мне нужен, и добавить к нему изображение? Другая логика, о которой я не думаю.
Это иерархия Scrollview
scrollView
|
|
MaseterView
|
|
AsyncImageView - TitleView - OtherImageView
Сколько AsyncImageView СДЕЛАЕТ вам нужно поддерживать? Похоже, что вы должны хранить локальную ссылку как в прямом указателе, так и в массиве, если у вас более одного. –
Есть много AsyncImageView. Я получаю объекты с url в ответе сервера, и для каждого изображения, которое нужно показать, я вызываю этот метод, в котором я отправляю массив 'imageInfo' с URL-адресом в качестве первого объекта. '[imageInfo objectAtIndex: 0]' – Spire