【发布时间】:2012-01-27 11:01:45
【问题描述】:
我正在开发一个包含一些视图的游戏(作为记忆卡游戏),我希望当用户点击卡片时,这个翻转并显示另一个视图。我用这个代码:
- (void)flipCard:(id)sender {
UIButton *btn=(UIButton *)sender;
UIView *view=[btn superview];
UIView *flipView=[[UIView alloc] initWithFrame:[view frame]];
[flipView setBackgroundColor:[UIColor blueColor]];
[[flipView layer] setCornerRadius:10];
NSLog(@"Flip card : view frame = %f, %f",view.frame.origin.x, view.frame.origin.y);
[UIView transitionFromView:view toView:flipView duration:1.0 options:UIViewAnimationOptionTransitionFlipFromLeft completion:^(BOOL finished) {
}];
}
每个视图都有一个覆盖整个视图的透明按钮,因此当用户点击视图时就像点击按钮一样。按钮调用上面传递发送者的方法。 当动画开始时,所有视图都被翻转,而不仅仅是我从发件人那里获得的视图。 我该怎么办?
【问题讨论】:
-
也许不是一个直接的解决方案,但是,您可以尝试为您在卡片上使用的按钮扩展 UIButton 并让弱指针返回卡片的视图,因此调用 btn.cardView 肯定会为您提供如果 superview 不起作用,则查看您想要的卡的视图。