最近更新的一批app,好多都采用了圓盤轉動的效果,比如:百度音樂、當當,大概效果如下:
看看這個是怎麼實現的吧。<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+0ruhosrTzbzUqsvYsry+1jwvcD4KPHA+ytfPyNDo0qrD98i3o6zV4tCpytPNvNSqy9jKx7fWsrzU2tK7uPbUstbcyc+1xKOszai5/bustq/Ou9bDo6zS1NSy1tzW0NDE0P3Xqs/g06a9x7bIo6zEx8O0uMPU9cO0sry+1sTYo788L3A+CjxwPsjnufuw0bDXyavUssXMus3QocjLytPNvLfWv6qjrL7N0OjSqrT6wuu/2NbGo6zH49Cxvce2yKOsyLu682FkZLW9uLjK0828yc+jrMfj0LG6w7Dso6y+zcrHzbzP8bXE0P3XqqOstavKx6Osx+PQsbrztcTNvMastcRmcmFtZb7Nsru6w7/Y1sbBy6GjPC9wPgo8cD7V4sqx06a4w8/rtb3KssO0xNijv8O7tO2jrMnovMbDw8PDo6zO0rapusO9x7bIo6zIw8novMbDw8PDsNHUssXMus3QocjLzbzSu8bwx9DNvLj4ztKjrMjnz8KjujwvcD4KPHA+PGltZyBzcmM9"/uploadfile/Collfiles/20141226/2014122608420681.png" width="800" height="800" alt="\">
這樣就不用自己去調整單張圖片的frame了,將該圖片的center.x設置為設備寬度的一半,通過調整center.y,來控制圖像的展示,代碼如下:
_circleBg = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 1355, 1292)]; _circleBg.center = CGPointMake(self.view.frame.size.width/2.0, self.view.frame.size.height+100); _circleBg.image = [UIImage imageNamed:@"circle.png"]; [self.view addSubview:_circleBg];
二、滑動起來
首先可能會想到,在添加好的圖片上面去添加滑動手勢,然後改變_circleBg.transform來旋轉角度,這樣做能旋轉圖片,但是需要維護很多變量來控制整個過程,比如:滑動
多少距離,翻轉到下一頁;滑動一點點距離,松手,還原回當前頁等等。
怎麼控制好呢?
剛才提到的這些顧慮可以通過scrollview完美解決,想想是不是。
那麼,我們要做的就是把圖片旋轉的角度和scrollview的滑動偏移量綁定在一起,通過scrollview來帶動圖片的旋轉,想想都美好啊!
代碼如下:
添加一個scrollview
_scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; _scrollView.backgroundColor = [UIColor lightGrayColor]; _scrollView.contentSize = CGSizeMake(self.view.frame.size.width*3, self.view.frame.size.height); _scrollView.delegate = self; _scrollView.pagingEnabled = YES; [self.view addSubview:_scrollView];
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { float offSetX = scrollView.contentOffset.x; _circleBg.transform = CGAffineTransformMakeRotation(-offSetX*(M_PI*4/9)/kScreenWidth); }