假设我有60-70个UIImageViews,我想同时动态地将相同的图像加载到所有这些图像中(可以这么说)。
例如,如果我正在处理一个包含60-70 div的网页,并且我想给他们所有背景图像,我会给他们所有类myDivs
并调用`$('。myDivs ')。css('background-image','url('+ imageUrl +')');
我知道如何设置UIImageView的图像,但有一种简单的方法可以在Objective C中一次设置一堆吗?
我确实尝试过搜索但是我充斥着大量与之无关的东西。
答案 0 :(得分:1)
这取决于您希望显示imageView的方式。 如果您使用的是UITableView或UICollectionView,则可以在cellForRowAtIndexPath:方法中动态更新放置在单元格中的imageView。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
// Configure the cell...
[self setCell:cell forIndexPAth:indexPath];
return cell;
}
- (void)setCell:(UITableViewCell *)cell forIndexPAth:(NSIndexPath *)indexPath
{
__weak UITableViewCell *weakCell = cell;
// 5. add picture with AFNetworking
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"www.facebook.com/profileImageLocation"]];
[cell.profileImage setImageWithURLRequest:request
placeholderImage:nil
success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
weakCell.profileImage
.image = image;
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
NSLog(@"bad url? %@", [[request URL] absoluteString]);
}];
}
另一种选择是使用这样的for循环:
- (void)addImagesToAllMyImageViews:(NSArray *)images
{
for (id obj in images) {
if ([obj isKindOfClass:[UIImageView class]]) {
UIImageView *imageView = (UIImageView *)obj;
imageView.image = [UIImage imageNamed:@"someImage.png"];
}
}
}
答案 1 :(得分:0)
我认为你可以使用tag属性,选择所有ImageView并给它们一个像777这样的teg和
for(id* subview in self.view.subview) {
if([subview isKindaOfclass:[UIImageView class]] && (subview.tag == 777)) {
UIImageView* imageView = (UIImageView*)subview;
imageVIew.image = youImage;
}
}
希望这可以帮助你