基本上我是想做一个和weico的timeline中,点击图片放大,可以旋转这样的效果。(timeline或者说整个tab是不旋转的, 仅仅pop-over需要旋转) (facebook也是如此)
首先我没有用viewcontroller的旋转,原因如上。我用的是一个tab-view-controller, 里面有5个不同的view-controller, 其中的一个view-controller上,需要实现类似的效果,table-view中的每一个cell, 如果有图片的话,点击cell中的图片,可以放大图片。 pop-over的实现,是写在一个UIScrollView中,pop-over的animation即可。 当一张照片是横的话,用户会希望能横过来屏幕来看。所以侦听屏幕的rotate事件,当rotate时,大概调用下面的代码
UIView animateWithDuration:0.36 animations:^(void){ [_imageView setTransform:CGAffineTransformMakeRotation(M_PI*90/180)]; _imageView.frame = CGRectMake(0, 0, 480, 320); //set the frame after the rotate self.contentSize = CGSizeMake(480, 320); //set the content-size of the scrollview } completion:nil];
问题是,_imageView的位置在横过来的时候,始终不对,或者width不对(看在上面的代码中,是先set frame还是先rotate)。
不知道如何搞定这个问题?
巴扎黑2017-04-17 11:07:31
如果你想单独对一个不支持横竖屏的viewController中的view支持横竖屏的话,你可以参考[MBProgressHUD](https://github.com/jdg/MBProgressHUD/...)的实现方案.
不过大多数这种pop出来的图片应该都会在一个单独的viewController中以模态的方式展现出来吧,这个时候旋转的问题便是这个viewController要负责的了。