鍍金池/ 問答/iOS/ 使用CGAffineTransformMakeRotation旋轉(zhuǎn)后視圖會(huì)變形,

使用CGAffineTransformMakeRotation旋轉(zhuǎn)后視圖會(huì)變形,這是什么原因,要如何處理呢?

CGFloat angle = 10 * M_PI / 180.f;
view.transform = CGAffineTransformMakeRotation(angle);

圖片描述

圖片描述

回答
編輯回答
汐顏

我改為view.layer.transform = CATransform3DMakeRotation(angle, 0, 0, 1)去測(cè)試,發(fā)現(xiàn)只有相對(duì)于z軸旋轉(zhuǎn)時(shí)有問題,看起來不像是繞z軸旋轉(zhuǎn)

如果使用動(dòng)畫的方式來進(jìn)行旋轉(zhuǎn)就沒有問題!!

CABasicAnimation *circleAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
view.duration = 0;
view.repeatCount = 1;
view.toValue = @(angle);
view.removedOnCompletion = NO;
view.fillMode = kCAFillModeForwards;
[view.layer addAnimation:circleAnimation forKey:@"rotation"];

原因是使用CATransform3DMakeRotation后修改了坐標(biāo)系,那么接下來是不能夠在此設(shè)置其所在視圖的frame的。這里我多次設(shè)置了其frame所以導(dǎo)致該問題

2018年2月5日 02:52