在 iOS 的超级视图/父视图控制器中读取子元素坐标
Posted
技术标签:
【中文标题】在 iOS 的超级视图/父视图控制器中读取子元素坐标【英文标题】:Reading sub elements coordinates in superview/parent view controller in iOS 【发布时间】:2012-07-03 14:15:47 【问题描述】:所以我创建了一个视图控制器,它创建了一个自定义视图,如果它包含两个元素,则在它们之间创建一条线。一个分隔符。
视图及其元素在 Interface Builder 中创建,并在那里设置它们的位置。
我要做的是读取子元素的原点坐标和宽度/高度,以便我可以动态地在它们之间绘制分隔符。
我尝试使用 NSArray self.subviews
并尝试使用 NSView
类中的方法 convertRect
和 convertPoint
。
有人知道我该怎么做吗?
所有帮助将不胜感激。
【问题讨论】:
【参考方案1】:这是一个相当有趣的请求,但我认为这应该可以很好地工作。这假设子视图是左/右,如果您需要上/下,则将 >= 反转为
-(void)example
if (self.view.subviews.count ==2)
CGPoint origin1 = [self.view.subviews objectAtIndex:0].frame.origin;
CGPoint origin2 = [self.view.subviews objectAtIndex1].frame.origin;
if (origin1.x >= origin2.x)
[[self.view.subviews objectAtIndex:0]setFrame:someFrameOnTheLeft];
[[self.view.subviews objectAtIndex:0]setFrame:someFrameOnTheRight];
【讨论】:
【参考方案2】:将出口链接到 xib 中的每个子视图,请参阅access view inside a storyboard
致电您的网点upperView
和lowerView
现在获取视图的来源
float x = upperView.frame.origin.x;
float y = upperView.frame.origin.y;
【讨论】:
是的,这可行,但我正在尝试创建一个动态视图控制器,该控制器可以检测某些元素是否存在,并根据它们的信息进行某些 ui 调整。感谢您尝试提供帮助。以上是关于在 iOS 的超级视图/父视图控制器中读取子元素坐标的主要内容,如果未能解决你的问题,请参考以下文章
在 Cocoa,UIResponder 中将消息从子视图发送到父视图?