여기에 작동하는 이상한 사실 :UIView의 애니메이션은 한 번만
내가 애니메이션 (이미지 이동)를 보유하고있는 사용자 정의있는 UITableViewCell 있습니다.
셀을 만들면 올바르게 작동합니다.
그러나 일단 셀을 숨기고 다시 스크롤하면 애니메이션이 중지되었습니다. 그건 이해할 수 있습니다. 하지만 내 viewWillAppear에서도 내 애니메이션 메서드를 호출하고 있습니다. 그리고 유선 부분은 메서드가 호출되고 중단 점을 넣었습니다. 아무 것도 할당 해제되지 않았습니다 ...
내 UITableViewCell이 강력하게 유지됩니다 (음악 플레이어가 있고 음악이 계속 재생 됨). 나는 정말로 그것을 얻지 않는다.
@property (nonatomic, strong) DWPlayerCellVC *playerView;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"player"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"player"];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
NSArray *viewsToRemove = [cell.contentView subviews];
for (UIView *v in viewsToRemove) {
[v removeFromSuperview];
}
if(!self.playerView){
self.playerView = [[DWPlayerCellVC alloc] init];
}
[cell.contentView addSubview:self.playerView.view];
self.playerView.model = self.model[indexPath.row];
return cell;
DWPlayerCellVC :
@implementation DWPlayerCellVC
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self zoomIn];
}
- (void)setModel:(id)model
{
_model = model;
// ...
[self zoomIn];
}
- (void)zoomIn
{
UIViewAnimationOptions options =
UIViewAnimationOptionBeginFromCurrentState |
UIViewAnimationOptionCurveEaseInOut |
UIViewAnimationOptionRepeat |
UIViewAnimationOptionAutoreverse;
[UIView
animateWithDuration:10.f
delay:0.f
options:options
animations:^{
CGFloat scale = 1.4f;
self.imageCoverView.transform = CGAffineTransformMakeScale(scale, scale);
} completion:NULL];
}
당신은 어떤 아이디어가 있다면 ...
덕분에 많은
여기 내 코드입니다!
것은 무한한 애니메이션 (UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse)이므로 영원히 확대/축소한다고 가정합니다. 그리고 그것은 처음으로 무엇을합니까? –