【问题标题】:I get the same position of a UIButton inside a UIScrollView if I scroll down or not如果我向下滚动,我会在 UIScrollView 中获得与 UIButton 相同的位置
【发布时间】:2015-01-02 10:07:29
【问题描述】:

我想在 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}}
    

这是我用来获取 UIScrollViewUIButton 位置的代码...

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?

感谢您的帮助!

【问题讨论】:

    标签: ios objective-c xcode uiscrollview uibutton


    【解决方案1】:

    也许你可以试试这个

    NSLog(NSStringFromCGRect([self.view convertRect:myButton.frame fromView:myButton.superview]));
    

    【讨论】:

    • 谢谢!这正是我所需要的,有了这个我弄清楚了,现在我可以得到位置,无论我是否向下滚动,谢谢!!
    【解决方案2】:

    您正在滚动视图中获得位置。可能您想要的是滚动视图的超级视图中的位置(可能是 self.view,也可能是其他东西)。

    【讨论】:

      【解决方案3】:

      您的滚动视图将具有contentOffset 值。滚动视图内的子视图的框架在滚动时不会改变。相反,此 contentOffset 值已更改。我确信有更好的方法可以做到这一点,但在基本层面上,你可以这样做来获取滚动视图的超级视图中的框架:

      CGRect frame = myButton.frame;
      frame.origin.x -= scrollView.contentOffset.x;
      frame.origin.y -= scrollView.contentOffset.y;
      NSLog(@"%@", NSStringFromCGRect(frame);
      

      【讨论】:

      • 我使用了您发布的代码,并尝试在向下滚动之前和之后打印 contentOffset 并且在两种情况下我都得到了相同的结果...我使用了 NSLog (@"contentOffset: (%f, %f)", MyScrollView.contentOffset.x, MyScrollView.contentOffset.y); 在这两种情况下,我都得到 contentOffset: (0.000000, 0.000000) 我做错了什么?
      猜你喜欢
      • 1970-01-01
      • 2012-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-22
      • 2012-07-15
      • 1970-01-01
      相关资源
      最近更新 更多