- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 x 和 y 坐标,以及我需要放置在其原始位置的 UIImageView 的旋转。坐标对应于 View 旋转后的坐标。
我发现的问题是,如果我用给定的 x 和 y 初始化 View ,然后执行旋转,最终位置不正确,因为应用转换的顺序不正确:
float x, y, w, h; // These values are given
UIImageView *imageView = [[UIImageView alloc] init];
// Apply transformations
imageView.frame = CGRectMake(x, y, w, h);
imageView.transform = CGAffineTransformRotate(imageView.transform, a.rotation);
如果我尝试在 View 旋转后使用 x 和 y 来平移 View ,那么最终的 x 和 y 是完全错误的:
float x, y, w, h; // These values are given
UIImageView *imageView = [[UIImageView alloc] init];
imageView.frame = CGRectMake(0, 0, w, h);
// Apply transformations
imageView.transform = CGAffineTransformTranslate(imageView.transform, x, y);
imageView.transform = CGAffineTransformRotate(imageView.transform, a.rotation);
我也尝试过在应用旋转后更新 View 的中心,但结果也不正确。
我正在寻找一些关于如何处理这个问题的建议或技巧,以达到我需要的结果。
提前致谢!
最佳答案
我正在使用这个 C 函数围绕中心进行旋转变换:
static inline CGAffineTransform CGAffineTransformMakeRotationAroundCenter(double width, double height, double rad) {
CGAffineTransform t = CGAffineTransformMakeTranslation(height/2, width/2);
t = CGAffineTransformRotate(t, rad);
t = CGAffineTransformTranslate(t, -width/2, -height/2);
return t;
}
您需要以弧度为单位指定宽度、高度和角度。
这能解决您的问题吗?
关于ios - 应用 CGAffineTransformRotate 后更新框架的原点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25248536/
我正在尝试使用 CGAffineTransformRotate 为 UIButton 的变换制作动画,当它正确执行动画时,它会将按钮向下移动大约 15 个像素,然后移动到在做之前就离开了。下面是执行动
我有 x 和 y 坐标,以及我需要放置在其原始位置的 UIImageView 的旋转。坐标对应于 View 旋转后的坐标。 我发现的问题是,如果我用给定的 x 和 y 初始化 View ,然后执行旋转
我有一张允许用户旋转和缩放的图像。每次用户单击图像时,我都会尝试确定该点是否透明。 如果它是透明的,我在 View 的 HitTest 中返回 null,如果它不透明,我返回 View 。当用户旋转图
嘿,需要你的帮助, 我正在尝试为我的 iPhone 创建一个模拟时钟。问题是,UIImage 没有以正确的方式移动或没有移动,大多数时候它在整个 View 中旋转。是否缺少任何框架,我将度数转换为弧度
首先,我几乎检查了互联网上的所有地方,但没有得到有关此主题的任何解决方案。 在我的例子中,我在一个 super View 中有多个 UIView 对象,或者你可以说我在 Canvas 上绘制这个 Vi
给出以下代码: self.transform = CGAffineTransformRotate(self.transform, ?); 有没有办法在不知道当前旋转角度的情况下将旋转设置回0?我还有其
我开始研究 Swift 的核心动画方法,并试图找出这两种方法之间的区别。我成功地使用 CGAffineTransformRotate 制作了一个正方形旋转,但我想知道另一个是用来做什么的。 我最好的猜
我想以编程方式旋转 View ,因为我使用了以下代码: CGAffineTransform rotateTransform = contentView.transform; CGAffineTrans
我正在使用 UIRotationGestureRecognizer 旋转我的 View ,但之后当我想使用 UISlider 增大或减小 View 大小时。我的视角首先设置为其初始状态,它正在增加或减
我正在制作一个带有可旋转饼图的应用。但是,我的饼图围绕 (0,0) 旋转,我找不到使其围绕其中心旋转的解决方案。 部分代码: // DRAWING CODE // Set constants
我需要在加载 View 时将界面构建器创建的 UIImageView 旋转给定角度。 - (void)viewDidLoad { [super viewDidLoad]; image.t
我正在尝试在 Objective-C 中进行简单的旋转,但马上就会出现一些问题。一件事是我从 CGAffineTransformRotate 得到的不一致以及在该函数内部使用时 M_PI 如何不一致。
我认为标题非常具有描述性: 我在 View 上执行所有 3 个操作,结果是屏幕左侧有 20 个像素的空白(如果握住 iPhone 为横向左)。 我尝试通过执行 CGAffineTransFormTra
我是一名优秀的程序员,十分优秀!