在我將一個影像設定為一個UIButton被呼叫的后bigIcon,我把它放在里面animateWithDuration并改變它的框架,然后我運行代碼,按鈕大小立即改變(沒有影片),但它從原點移動到目的地緩慢(有影片) , 我怎么解決這個問題?我發現如果我確實為按鈕設定了影像,這個問題就會消失。
這是代碼:
- (void)bigImage:(MCGodCell *)godCell withImage:(UIImage *)image {
self.bigIcon = [UIButton new];
self.bigIcon.adjustsImageWhenHighlighted = NO;
[self.bigIcon setBackgroundImage:image forState:UIControlStateNormal];
CGFloat iconX = self.tableView.frame.size.width / 2.0;
CGFloat iconY = self.tableView.frame.size.height / 2.0;
self.bigIcon.frame = CGRectMake(iconX, iconY, 1, 1);
[self.tableView addSubview:self.bigIcon];
CGFloat iconW = self.tableView.frame.size.width;
CGFloat iconH = iconW;
iconY = (self.view.frame.size.height - iconH) / 2.0;
[UIView animateWithDuration:0.3 animations:^{
self.bigIcon.frame = CGRectMake(0, iconY, iconW, iconH);
}];
}
uj5u.com熱心網友回復:
您沒有看到框架更改,因為您嘗試在將其添加到視圖層次結構后立即為其設定影片。
UIKit 需要將按鈕添加為子視圖,然后在下一個 UI 更新程序中運行影片。
將您的影片塊包裹在這樣的dispatch_async塊中:
dispatch_async(dispatch_get_main_queue(), ^{
[UIView animateWithDuration:0.3 animations:^{
self.bigIcon.frame = CGRectMake(0, iconY, iconW, iconH);
}];
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/378446.html
上一篇:awk洗掉\n如果下一行不匹配
