0

我有滚动视图,其中有 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 的原点而不是从屏幕的原点获取坐标。

如何获取按钮相对于窗口的位置?

4

1 回答 1

0

从您的描述看来,您真正想要做的是在显示按钮的位置显示图像视图,但它的位置在滚动视图内。

正如怀疑的那样,这里计算屏幕坐标不是正确的方法。相反,您需要使用滚动视图的位移来偏移按钮的 rect/origin 以确定正确的位置。

使用滚动视图的-contentOffset属性来获取CGPoint指示内容的偏移量。从按钮的边界原点中减去该点(或者center如果您想要更方便的东西)。这将为您提供显示图像的正确点(相对于滚动视图的框架原点)。

如果您不在滚动视图中显示图像,您可以使用-[UIView convertPoint:fromView:]或将该点转换为超级视图的坐标系[UIView convertPoint:toView:]

于 2012-07-13T08:04:04.573 回答