如何在coco-touch iOS中重绘视图?

时间:2012-06-24 08:14:59

标签: ios cocoa-touch uiimageview addsubview

我正在使用x-code在cocoatouch下编程。

我在[self.view addSubview:test];的ViewDidLoad函数中添加了很多UIImageViews。

如果Web上的信息发生了变化,UI上的UIImageViews应该被其他的替换(删除原始的并添加新的)。有没有什么典型的方法呢?

如何重绘视图?如何删除已由addSubView方法加载的UIImageViews。

非常感谢!

2 个答案:

答案 0 :(得分:1)

根据Apple的UIView文档,您应该使用setNeedsDisplay

答案 1 :(得分:0)

UIImageView存储在数组中。这样,您可以稍后轻松访问它们,以便从视图中删除它们。

在MyViewController.h中:

@interface ResultsViewController {
    NSMutableArray *myImageViews;
}

在MyViewController.m中:

- (void)viewDidLoad {
    // Initialize image views
    UIImageView *imageView = ...
    [self.view addSubview:imageView]; 
    [myImageViews addObject:imageView];
}

// Some action is called
- (void)somethingHappens {
    // Remove imageViews
    for (UIImageView *imageView in myImageViews) {
        [imageView removeFromSuperView];
    }

    // Empty myImageViews array
    [myImageViews removeAllObjects];

    // Create new imageViews
    UIImageView *imageView = ...
    [myImageViews addObject:imageView];
}