我想在 UIScrollView 中获得 UIButton 的位置,问题是我在 UIButton 时获得相同的位置在它的原始位置或如果我向下滚动...
我正在使用 NSLog 打印位置,我得到相同的输出
没有向下滚动我得到......
2014-11-05 19:28:02.564 ... {{260, 163}, {370, 225}}
即使我向下滚动,我也会得到相同的输出......
2014-11-05 19:28:06.052 ... {{260, 163}, {370, 225}}
这是我用来获取 UIScrollView 中 UIButton 位置的代码......
NSLog(@"%@", NSStringFromCGRect(CGRectMake(myButton.frame.origin.x, myButton.frame.origin.y, myScrollDown.frame.size.width, myScrollDown.frame.size.height)));
即使我向下滚动,有一种方法可以获得UIButton的实际位置吗?
还有另一种方法可以在ScrollView中获取UIButton的位置吗?
我已经访问了以下链接,但我还没有解决。
get UIButton inside an UIScrollView absolute screen location
iPhone - Get Position of UIView within entire UIWindow
Cocoa: What's the difference between the frame and the bounds?
感谢您的帮助!
答案 0 :(得分:5)
也许你可以试试这个
NSLog(NSStringFromCGRect([self.view convertRect:myButton.frame fromView:myButton.superview]));
答案 1 :(得分:0)
您将获得滚动视图中的位置。可能你想要的是在scrollview的superview中的位置(也许是self.view,也许是其他东西)。
答案 2 :(得分:0)
您的滚动视图将具有contentOffset
值。滚动视图内部子视图的框架在滚动时不会更改。相反,此contentOffset
值已更改。我确信有更好的方法可以做到这一点,但在基本层面上,你可以这样做,以便在滚动视图的超视图中获取框架:
CGRect frame = myButton.frame;
frame.origin.x -= scrollView.contentOffset.x;
frame.origin.y -= scrollView.contentOffset.y;
NSLog(@"%@", NSStringFromCGRect(frame);