2010-10-21 92 views
0

我使用下面的代码在两个UIImageView之间转换。2 UIImages之间的转换

-(void)performTransitionNew: (NSInteger)type subType:(NSInteger)subType 
       fromImageView:(UIImageView *)fromImageView 
        toImageView:(UIImageView *)toImageView duration:(NSInteger)duration; 
{ 
    CATransition *transition = [CATransition animation]; 
    transition.duration = duration;//0.3; 
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 

    NSString *types[4] = {kCATransitionMoveIn, kCATransitionPush, kCATransitionReveal, kCATransitionFade}; 
    NSString *subtypes[4] = { kCATransitionFromLeft, kCATransitionFromRight, kCATransitionFromTop, kCATransitionFromBottom}; 

    transition.type = types[type]; 

    transition.subtype = subtypes[subType]; 


    transitioning = YES; 
    transition.delegate = self; 

    [self.aUIView.layer addAnimation:transition forKey:nil]; 

    fromImageView.hidden = YES; 
    toImageView.hidden = NO; 

    UIImageView *tmp = toImageView; 
    toImageView = fromImageView; 
    toImageView = tmp; 

} 

它们都在UIView'aUIView'上。 我想要的结果是这样的: alt text

,但它显示是这样的:

alt text

它看起来像toImageView来自aUIView之外。

欢迎任何评论。

回答

0

问题是,UIView是在另一个视图之上(是滑块)你可以改变这些视图的顺序。如果一个UIView在另一个之前,那么子视图也是,无论它们是否在父视图的范围内。

+0

甚至我用[self.view bringSubviewToFront:anyUIViewAroundaUIView]; – arachide 2010-10-21 11:59:57

+0

将任何uiview带到前面,结果一样。它会透明地显示到UIImageView – arachide 2010-10-21 12:00:48

+0

和toImageView肯定是一个UIView的子视图,对吧? – Maffo 2010-10-21 13:20:45