ビューに1つずつ表示されるラベルにマーキー効果を追加するための次のコードを作成しました。
- (void)marqueeMessage:(NSString *)messageString
{
UILabel *label = [[UILabel alloc] initWithFrame:(CGRectMake(520, 0, 480, 21))];
label.text = messageString;
[self.view addSubview:label];
[UIView animateWithDuration:0.2
animations:^ {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:20];
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:self.view cache:YES];
label.frame = CGRectMake(-480, 0, 480, 21);
[UIView commitAnimations];
}
completion:^(BOOL finished) {
NSLog(@"Animation Done!");
if (array.count > 0)
{
nextIndex++;
NSString *strMessage = [array objectAtIndex:nextIndex];
[self marqueeMessage:strMessage];
}
}];
}
どういうわけか、配列内の文字列は、アニメーションの実行中に重なるように表示されています。
どんなアイデアでも、誰でも?
さらに情報が必要な場合に備えて、私に知らせてください。