如何检测UIImageView垂直翻转

我从UIImageView的scaleY检查,但它不起作用(请参阅下面的代码)。

CGAffineTransform t = [myImageView transform]; // Keep matrix value of UIImageView float scaleY1 = sqrt(tb * tb + td * td); // 1.0000 CGAffineTransform t2 = CGAffineTransformScale(t, 1, -1.0); // flip UIImageView vertically float scaleY2 = sqrt(t2.b * t2.b + t2.d * t2.d); // 1.0000 [myImageView setTransform:t2]; NSLog(@"1: %f, 2: %f", scaleY1, scaleY2); // 1: 1.0000, 2: 1.0000 

从上面可以看到,在我们翻转UIImageView之前和之后,我们得到了相同的“scaleY值”。

我们应该检查什么值? (为了检测UIImageView垂直翻转)

检查imageview的transform属性怎么样? 如果视图已经被转换,你会看到那里。 这是我看到,如果我打印myImageView的值在转换后在控制台中:

(lldb)po myImageView

UIImageView:0x8f59f30; frame =(0 0; 0 0); transform = [1,0,-0,-1,0,0]; userInteractionEnabled = NO;

你可以试试这个

 [UIView transitionWithView: flipTile duration: 0.5 options: UIViewAnimationOptionTransitionFlipFromLeft animations:^{ flipTile.image = newTileImage; } completion:^(BOOL finished) { /* code after completion */ } ]; 

jay gajjar的答案很好。

但是,如果你不想animation,然后使用

 [UIView transitionWithView: flipTile duration: 0.0 options: UIViewAnimationOptionTransitionFlipFromLeft animations:^{ flipTile.image = newTileImage; } completion:^(BOOL finished) { /* code after completion */ } ];