您好,登錄后才能下訂單哦!
這篇文章給大家介紹怎么在iOS中實現一個圖片折疊效果,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
結構布局:拖兩個UIImageView到控制器,設置相同的frame和圖片,再拖一個大的UIImageView蓋在上面,注意把大的imageView.userInteractionEnabled = YES;能夠添加手勢。
核心代碼:
#import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIImageView *topImageV; @property (weak, nonatomic) IBOutlet UIImageView *buttomImageV; @property (nonatomic, weak) CAGradientLayer *gradientL; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //1.讓上不圖片只顯示上半部分 self.topImageV.layer.contentsRect = CGRectMake(0, 0, 1, 0.5); //2.讓下不圖片只顯示下半部分 self.buttomImageV.layer.contentsRect = CGRectMake(0, 0.5, 1, 0.5); self.topImageV.layer.anchorPoint = CGPointMake(0.5, 1); self.buttomImageV.layer.anchorPoint = CGPointMake(0.5, 0); //設置漸變層 CAGradientLayer *gradidentL = [CAGradientLayer layer]; gradidentL.frame = self.buttomImageV.bounds; gradidentL.opacity = 0; gradidentL.colors = @[(id)[UIColor clearColor].CGColor, (id)[UIColor blackColor].CGColor]; self.gradientL = gradidentL; [self.buttomImageV.layer addSublayer:gradidentL]; } //這里也可以手動給大的ImageView添加一個UIPanGestureRecognizer手勢 - (IBAction)pan:(UIPanGestureRecognizer *)pan { //獲取移動的偏移量 CGPoint transP = [pan translationInView:pan.view]; //讓上部圖片開始旋轉 CGFloat angle = transP.y * M_PI / 200; //近大遠小效果 CATransform3D transform = CATransform3DIdentity; //眼睛離屏幕的距離(透視效果) transform.m34 = -1 / 300.0; self.gradientL.opacity = transP.y * 1 / 200.0; self.topImageV.layer.transform = CATransform3DRotate(transform, -angle, 1, 0, 0); if (pan.state == UIGestureRecognizerStateEnded) { self.gradientL.opacity = 0; //上部圖片復位 //usingSpringWithDamping:彈性系數 [UIView animateWithDuration:0.5 delay:0 usingSpringWithDamping:0.5 initialSpringVelocity:0 options:UIViewAnimationOptionCurveLinear animations:^{ self.topImageV.layer.transform = CATransform3DIdentity; } completion:^(BOOL finished) { }]; } } @end
關于怎么在iOS中實現一個圖片折疊效果就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。