将图像设置为许多UIImageViews

时间:2014-01-06 08:10:43

标签: ios objective-c uiimageview

假设我有60-70个UIImageViews,我想同时动态地将相同的图像加载到所有这些图像中(可以这么说)。

例如,如果我正在处理一个包含60-70 div的网页,并且我想给他们所有背景图像,我会给他们所有类myDivs并调用`$('。myDivs ')。css('background-image','url('+ imageUrl +')');

我知道如何设置UIImageView的图像,但有一种简单的方法可以在Objective C中一次设置一堆吗?

我确实尝试过搜索但是我充斥着大量与之无关的东西。

2 个答案:

答案 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;
   }
 }

希望这可以帮助你