SWIFT 在 Main.storyboard 中定义的 UIImageview 中旋转图像

2024-02-24

我是 SWIFT 新手,正在练习学习,但在某些方面遇到了一些困难。 我在 Main.storyboard 定义的 UIImageview 中有一个图像,我需要旋转它。

我有一个 IBOutlet 定义为:

@IBOutlet weak var imageToRotate: UIImageView!

我试图以最右侧和高度中间的旋转中心来旋转它,根据苹果文档和这里的一些帖子,我使用了锚点:

imageToRotate.layer.anchorPoint = CGPointMake( 1.0, 0.5 )

然后我尝试使用变换来旋转它:

imageToRotate.transform = CGAffineTransformMakeRotation(CGFloat( myRadians ) )

图像在 Main.storyboard 中定义,加载时看起来不错,但当我发出anchorPoint 时,图像会向左移动,右边缘转到图像原来的中心位置,并且旋转发生在该中心周围观点。

我尝试使用:

imageToRotate.center = CGPointMake( 487, 160)

将图像移回到它应该在的位置,但它没有移动,所以这也让我感到困惑。

我想我在这里遗漏了一些东西,但我不知道它是什么。我是否必须定义子层或其他内容? 此外,仅发出锚点就会移动图像这一事实告诉我,我缺少了一些东西。

在类定义中,我使用了它并将其链接到故事板的 UIImage:

@IBOutlet weak var imageToRotate: UIImageView!

在 viewDidLoad() 的重写中我使用了这个:

imageToRotate.layer.anchorPoint = CGPointMake(1.0, 0.5)

imageToRotate.transform = CGAffineTransformMakeRotation(CGFloat( myRadians ) )

Thanks.


要围绕一个点进行评分,您真正需要做的就是结合平移和旋转。平移是以图像中心为原点的 x 和 y 坐标。旋转是以弧度为单位的 CGFloat。它可能看起来像这样:

let square2 = UIView(frame: CGRectMake(200, 200, 50, 50))
view.addSubview(square2)
// Desired point from the center to rotate around
let x = CGFloat(25)
let y = CGFloat(0)
var transform = CGAffineTransformMakeTranslation(x, y)
transform = CGAffineTransformRotate(transform, CGFloat(M_PI_4))
transform = CGAffineTransformTranslate(transform,-x,-y)
square2.backgroundColor = UIColor.magentaColor()
square2.transform = transform

This creates the following rotation around the new axis of rotation: enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SWIFT 在 Main.storyboard 中定义的 UIImageview 中旋转图像 的相关文章

随机推荐

  • 学习 Web 开发时我应该使用框架吗

    我意识到这可能是主观的 但我确实需要一个答案 而且我似乎无法在论坛的其余部分中找到足够接近的答案 我读过一些人说框架 任何 MVC 框架 可能会掩盖太多的事情 而另一些人则说它可以促进良好的实践 我意识到框架对于一定水平的程序员来说非常有用
  • 替换公式中的文本时发现错误

    我发现了一个非常有趣的bug今天 即如果它是bug 您能确认一下是否可以复制吗 如果它是一个错误并且尚未报告 那么我可以将其归档 如果任何 Excel MVP 想要将其作为错误归档 我也可以接受 让我们说在sheet1在细胞内A1 你有一个
  • 求给定 Int 的总和但忽略重复的数字

    我不能使用数组或列表 我必须使用 C 重复意味着如果你有975444579它会显示25或者如果你有32111它会显示6并不是8 这是我的代码 include
  • Spring OAuth2 JDBCTokenStore 性能和数据库架构

    我使用 MySQL5 5 REST Jersey Spring Security Spring OAuth2 现在我正在做性能测试并注意到 org springframework security oauth2 provider token
  • F# 受歧视联合的限制

    我正在尝试将一个小型编译器从 C 移植到 F 以利用模式匹配和可区分联合等功能 目前 我正在使用基于 System Linq Expressions 的模式对 AST 进行建模 一个抽象基 Expression 类 每个表达式类型的派生类
  • 显示两个日期之间的所有日期数据;如果特定日期不存在行,则所有列中显示零

    我想显示两个日期之间的所有日期 当缺少任何日期数据时 它应该在 val 列中显示零 declare temp table id int identity 1 1 not null CDate smalldatetime val int 插入
  • 使用javascript设置图像源和背景图像

    我看过许多其他帖子 我认为我正在使用建议的确切语法 但是 我没有让图像显示出来 我有一个jsfiddle http jsfiddle net abalter An7r5 是jsfiddle的问题吗 它也无法在我正在开发的网站上运行 div
  • 固件:配置 orion 上下文代理端口

    我在用着Orion 上下文代理 http catalogue fi ware org enablers publishsubscribe context broker orion context broker但默认端口在我的组织中无效 防火
  • 为 UIImagePickerController 启用 HDR 选项

    是否可以在我的应用程序中启用 HDR 选项 我以为它会自动存在 我寻找了其他媒体类型 认为 kUTTypeHDRImage 可能是一个选择 但没有这样的运气 它不是额外的源类型 也不能通过cameraCaptureMode使用 ipc so
  • 如何在codeigniter中调用另一个控制器中的一个控制器函数

    我有一个名为home php其中一个函数名为podetails有没有 我想在另一个控制器中调用这个函数user php 可以这样做吗 我读过关于HMVC在CI中 但我想知道是否可以不使用hmvc 要扩展控制器 请按照此操作tutorial
  • 使用异常映射器进行 Openejb Rest 集成测试

    我正在为我的 jax rs 服务编写一些集成测试 其中我有一组异常映射器 因此 在执行给定请求时 我期望基于异常映射器的特定响应代码 问题是在这个环境中运行时我无法调用异常映射器 我的服务应该在我的测试中抛出逻辑异常 Stateless P
  • 如何在 HTML 下拉列表中显示复选框?

    我需要填充一个下拉列表 HTML
  • 引用库中的 ASP.NET 相对路径

    我有一个 ASP NET 网站 我正在其中从 xml 文件加载一些验证规则 此 xml 文件名没有路径信息 被硬编码在库中 我知道硬编码名称不好 但我们就在这个例子中使用它 当我运行该网站时 ASP NET 尝试在source路径 名称硬编
  • PRESTASHOP NGINX + 重写规则

    我一直在为这种组合寻找一个好的解决方案 并遵循以下步骤 http www phamviet net 2012 06 03 prestashop rewrite url on nginx http www phamviet net 2012
  • Android模拟器没有窗框

    我是 Android 开发新手 并且对 Android 模拟器有疑问 它没有窗口框架 我无法将其移动到屏幕上或移动到第二个显示器 这让我很害怕 我尝试用谷歌搜索 但没有找到解决方案 谁能告诉我如何解决这个问题 我有同样的问题 有一个框架 它
  • Spring Boot 中的大小注释返回 400 Bad Request

    我在执行时没有收到消息错误 SizeSpring Boot bean 类中的注释 下面是我的文件 pom xml
  • 我可以在不先查询 EF 实体的情况下更新它吗?

    这是我的场景 我有一条通过 WCF 传递的简单消息 该消息代表现有数据库记录并具有all进行计算所需的数据字段 一旦我完成了计算 我想更新one该数据记录上的字段 目前 尝试简单地设置实体框架版本的所有字段 然后保留对象上下文的状态似乎没有
  • 如何获得两个具有不同绘图的窗口

    当我们有一个带有绘图的窗口时 有没有办法告诉 R 在新窗口中显示新绘图 plot 1 1 dev new plot 2 2 dev set dev prev go back to first title main test dev 1 de
  • 连接 ECONNREFUSED - 节点 js 、 sql

    我在 js 文件中有下一个代码 var mysql require mysql var TEST DATABASE nodejs mysql test var TEST TABLE test var client mysql createC
  • SWIFT 在 Main.storyboard 中定义的 UIImageview 中旋转图像

    我是 SWIFT 新手 正在练习学习 但在某些方面遇到了一些困难 我在 Main storyboard 定义的 UIImageview 中有一个图像 我需要旋转它 我有一个 IBOutlet 定义为 IBOutlet weak var im