UIImageView 以 Timer 每 0.5 秒隨機切換 5 張圖片,需隨時取得當前顯示圖片的檔名。
@property (nonatomic, strong) IBOutlet UIImageView *imgView;
@property (nonatomic, strong) NSArray *imgArray; // 檔名陣列
- (void)viewDidLoad {
[super viewDidLoad];
self.imgArray = @[@"tops.png", @"position_conv.png", @"stocks.png", @"home.png", @"report.png"];
[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(changeImage) userInfo:nil repeats:YES];
}
- (void)changeImage {
NSUInteger idx = arc4random_uniform((uint32_t)self.imgArray.count);
NSString *name = self.imgArray[idx];
self.imgView.image = [UIImage imageNamed:name];
// 關鍵:將檔名存入 accessibilityIdentifier
self.imgView.image.accessibilityIdentifier = name;
}
- (IBAction)getCurrentImageName:(id)sender {
NSString *currentName = self.imgView.image.accessibilityIdentifier;
NSLog(@"Current image: %@", currentName ?? @"nil");
}
currentImageIndex 記錄索引。UIImage 增加 fileName 屬性(需關聯物件)。