gpt4 book ai didi

image - 如何更改 UIImageView 中 UIImage 的位置

转载 作者:搜寻专家 更新时间:2023-10-30 22:35:48 24 4
gpt4 key购买 nike

我有一个名为 imageUIImage 我想更改它在 imageView 中的位置,以便它可以稍微向下拖动,大致30px。有人可以告诉我该怎么做吗?这是我要做的,但结果不正确。

var image = UIImage()
var imageView = UIImageView(frame: CGRectMake(0, 0, view.frame.size.height * 0.22, view.frame.size.height * 0.22))
imageView.center = CGPointMake(self.view.center.x, view.frame.size.height * 0.414)
imageView.image = self.image
imageView.layer.cornerRadius = imageView.frame.size.width / 2
imageView.layer.borderWidth = 2.0
imageView.layer.borderColor = UIColor(red: 254.0/255, green: 216.0/255, blue: 0/255, alpha: 1.0).CGColor
imageView.clipsToBounds = true
imageView.layer.contentsRect = CGRectMake(0, 20, imageView.frame.size.width, imageView.frame.size.height) //This is where I have being trying to do it but no success.
imageView.contentMode = .ScaleAspectFill
view.addSubview(imageView)

最佳答案

简短的回答:你没有。

您要做的是将 ImageView 添加为另一个 View 的 subview 。做到这一点的简单方法是将 ImageView 放在 ScrollView 中,并对其进行约束,以便它唯一可以滚动的地方是向下滚动,而且只能滚动一点点。然后你可以用零代码实现滚动。

编辑:

这实际上不是编码问题 - 它更像是一个界面生成器问题。您需要设置 ScrollView 。 ScrollView 是一种可让您查看较大 View 的一部分的 View 。

您可以将 ScrollView 想象成一张上面有一个矩形孔的纸。你把一张更大的纸放在它下面( ScrollView 的内容 View ),然后你可以四处滑动更大的纸并通过孔查看它的不同部分。

以下是您将如何设置它。

将 ScrollView 拖到 View Controller 上。调整大小并向其添加约束以将其放置在您想要的位置。例如,如果您希望 ImageView 的大小为 300x300 点,并且希望能够将其向上或向下拖动 20 点,则将 ScrollView 高 20 点。 (宽:300,高:320)

选择 ScrollView 内的 View 并将其宽度设置为与其 ScrollView 相同的宽度,但比 ScrollView 高 20 点。 (宽:300,高:340)。添加约束以锁定其高度和宽度。

现在您有一个 ScrollView ,它足以容纳 300x300 点的图像,顶部和底部的总空白区域为 20 点。

您已经创建了一个比它大 20 磅的内容 View ,因此它可以在 ScrollView 中向上或向下滑动 20 磅。

将 300x300 点 ImageView 拖到 ScrollView 内的 View 中,为其分配图像,并添加约束以锁定其大小并在其父 View 中水平和垂直居中。

最后一步是设置 ScrollView 的内容大小。通常你只需将 ScrollView 的内容大小设置为它的内容 View 的大小。您可以通过将这段代码添加到 View Controller 的 viewDidLoad 中来做到这一点:

(假设您已将名为 theScrollView 的 socket 连接到 ScrollView )

//Get the first (and only) subview of the scrollView.
let subview = theScrollView.subviews[0] as! UIView;

//Make the scroll view's contentSize the same size as the content view.
theScrollView!.contentSize = subview.bounds.size;

也可以完全不使用任何代码来设置 ScrollView 的内容大小。您将使用 IB(Interface Builder)的一项功能,称为“用户定义的运行时属性”。以下是您的操作方式:(如果您使用此方法,请不要将上面的代码添加到 viewDidLoad)

在 IB 中选择 ScrollView 。按命令选项 3 选择“身份检查员”。在标题为“用户定义的运行时属性”的部分中,点击左侧的加号。将 Key Path 编辑为“contentSize”(除“Size”中的“S”外均为小写。这非常重要。)按 enter 键更改键路径。然后点击“类型”列并选择“尺寸”。值字段将显示“{0,0}”。输入您想要的内容大小:(上例中的“{300,340}”。)

它的作用是告诉 IB“在运行时,在所选对象( ScrollView )中查找名为“contentSize”的属性。将该属性设置为 CGSize 类型的指定值。

完成后,您的 IB“身份检查员”应该如下所示:

enter image description here

请注意,如果您在使用“用户定义的运行时属性”时输入错误的键名,那么当您显示该 View Controller 时应用程序会崩溃,并显示一条非常神秘的消息。

默认情况下, ScrollView 允许您在拖动内容时“过冲”,然后在您放手时弹回原位。您可以通过取消选中 IB“属性检查器”(命令选项 4)中的“弹跳”复选框来关闭该功能

关于image - 如何更改 UIImageView 中 UIImage 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30001889/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com