如何获取关于窗口的按钮位置
Posted
技术标签:
【中文标题】如何获取关于窗口的按钮位置【英文标题】:How to Get button position regarding to the window 【发布时间】:2012-07-13 07:20:05 【问题描述】:我有滚动视图,其中有 12 个按钮。在窗口上一次只能看到四个按钮。出于动画目的,我需要按钮相对于窗口的位置。
我遵循了这些方法,但它对我不起作用:
[btn.superview convertPoint:btn.frame.origin toView:nil];
btnImgeView.frame= CGRectMake(btn.frame.origin.x + 10, 240, btn.frame.size.width, btn.frame.size.height);
btn.frame.origin.x 从 scrollView 的原点而不是屏幕的原点获取坐标。
如何获取按钮相对于窗口的位置?
【问题讨论】:
很少需要屏幕坐标,尤其是在 ios 上。你能更详细地解释你想要做什么吗?可能有更好的方法。 我正在做的是当我单击其中一个按钮时,滚动视图被隐藏,并且图像视图出现在按钮位置,然后它滑动到屏幕左侧。但是当我向左滚动并单击最后一个按钮(或滚动后的任何按钮)时,imageView 出现在屏幕外,然后向左滑动。这就是问题 【参考方案1】:从您的描述看来,您真正想做的是在显示按钮的位置显示图像视图,但其位置在滚动视图内。
正如怀疑的那样,这里计算屏幕坐标不是正确的方法。相反,您需要使用滚动视图的位移来偏移按钮的 rect/origin 以确定正确的位置。
使用滚动视图的-contentOffset
属性获取CGPoint
,指示内容的偏移量。从按钮的边界原点中减去该点(或者如果您想要更方便的东西,则只需 center
)。这将为您提供显示图像的正确点(相对于滚动视图的框架原点)。
如果您不在滚动视图中显示图像,您可以使用-[UIView convertPoint:fromView:]
或[UIView convertPoint:toView:]
将点转换为超级视图的坐标系。
【讨论】:
以上是关于如何获取关于窗口的按钮位置的主要内容,如果未能解决你的问题,请参考以下文章
C#winform有2个panel,在右边panel获取鼠标的坐标(x,y),如何传递到panel1上弹出的窗口form2里面呢