我正在使用x代碼在cocoatouch下編程。如何在coco-touch iOS中重繪視圖?
我通過[self.view addSubview:test];
在ViewDidLoad函數中添加了很多UIImageViews。
如果Web上的信息發生更改,UI上的UIImageView應該被其他的替換(刪除原來的並添加新的)。有沒有什麼典型的方法來做到這一點?
如何重繪視圖?如何刪除已通過addSubView方法加載的UIImageView。
非常感謝!
我正在使用x代碼在cocoatouch下編程。如何在coco-touch iOS中重繪視圖?
我通過[self.view addSubview:test];
在ViewDidLoad函數中添加了很多UIImageViews。
如果Web上的信息發生更改,UI上的UIImageView應該被其他的替換(刪除原來的並添加新的)。有沒有什麼典型的方法來做到這一點?
如何重繪視圖?如何刪除已通過addSubView方法加載的UIImageView。
非常感謝!
將您的UIImageView
s存儲在一個數組中。這樣,您可以稍後輕鬆訪問它們,將它們從視圖中移除。
在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];
}
根據蘋果的UIView
文檔,你應該使用setNeedsDisplay。
你想重繪視圖,還是改變視圖層次? – JustSid
改變視圖層次結構,因爲點擊UIImageView時的某些操作也會發生更改。 – sxingfeng