我有scrollView,其中有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的原点开始,而不是从屏幕原点开始。
如何获得按钮在窗口上的位置?
答案 0 :(得分:0)
根据你的描述,你真正想要做的就是显示一个按钮出现的图像视图,但它的位置在滚动视图中。
如所怀疑的,计算屏幕坐标不是正确的方法。相反,您需要使用滚动视图的位移来偏移按钮的rect / origin以确定正确的位置。
使用滚动视图的-contentOffset
属性获取CGPoint
,指示内容的偏移量。从按钮的边界原点减去该点(或者如果您想要更方便的话,只需center
)。这将为您提供显示图像的正确位置(相对于滚动视图的帧原点)。
如果您没有在滚动视图中显示图像,则可以使用-[UIView convertPoint:fromView:]
或[UIView convertPoint:toView:]
将点转换为超视图的坐标系。