如何在按钮单击时获取 UIImageView 的高度、宽度、X 和 Y 并将其传递给其他 ViewController?

Posted

技术标签:

【中文标题】如何在按钮单击时获取 UIImageView 的高度、宽度、X 和 Y 并将其传递给其他 ViewController?【英文标题】:How to Get Height, Width , X and Y of UIImageView on Button click and pass it to Other ViewController? 【发布时间】:2017-06-29 08:46:14 【问题描述】:

我正在创建一个 ios 应用程序(目标 c),在这个应用程序中,我将 UIImageview(可移动)设置在 UIView(如贴纸)上。我接下来要做的是当用户单击按钮时,新的ViewController 将打开,那个时候UIImageview 应该在相同的位置(相同的高度和宽度),就像它在前一个@987654325 上的最后一个位置、高度和宽度一样@。但我不知道如何保存UIImageview 的位置并将其用于其他ViewController。我知道如何使用其他ViewController 的属性,但对这个特定的属性一无所知。

【问题讨论】:

你能分享一些你正在尝试的代码吗? 您的UIImageview 是在某些视图中还是直接在主视图中?显示UIImageview 的层次结构。 @RonakChaniyara 我以编程方式创建了 UIImageView。它在 UIView 中而不是在直接主视图中。 【参考方案1】:

在按钮操作方法中编写以下代码:

// Convert the co-ordinates of the view into the window co-ordinate space

   CGRect frame = [yourImgView.superview convertRect:yourImgView.frame toView:self.view];

现在,frame 将成为您完整 viewController 视图中的 UIImageview 框架,您可以将其传递给下一个 viewController 并在那里使用。

【讨论】:

嘿!感谢您的快速回复!!你能告诉我如何在其他 ViewController 中访问这个 CGRect 吗?因为我在访问字符串、图像或数组时无法访问它。 将框架作为第二个 vc 中的属性,并在从第一个 vc 推送该 vc 时传递。 HTH@MaulikDesai【参考方案2】:

我认为您只需要在创建新控制器作为控制器中的属性之前传递图像视图的框架即可使用该框架设置新的图像视图。

ViewController1:

let imageViewFrame = yourimageView.frame

视图控制器2:

var imageFrame : CGRect?

Viewcontroller2.imageFrame =  imageViewFrame

newImageView.frame = imageFrame

【讨论】:

以上是关于如何在按钮单击时获取 UIImageView 的高度、宽度、X 和 Y 并将其传递给其他 ViewController?的主要内容,如果未能解决你的问题,请参考以下文章

UIImageView 上的按钮不可点击

Swift - 如何从单元格内单击 UIImageView 上的自定义 UITableViewCell 获取行数据

点击单元格中的 UIImageView 时如何获取 indexpath.row?

第一次更改图像时 UIImageView 内存增加

Swift:IBAction 在单击按钮后将图像放入 UIImageView

用户单击删除按钮时如何获取当前(添加)按钮