【问题标题】:Change Size of button in the middle of a UIScrollView更改 UIScrollView 中间按钮的大小
【发布时间】:2013-03-12 18:29:33
【问题描述】:

我有一个包含多个按钮的 uiscrollview。当用户将按钮滚动到滚动视图的中间时,我需要更改它的大小。我以编程方式创建并添加了这些按钮,并为每个按钮分配了一个标签号。我只是不确定如何确定哪个按钮在中间,以便我可以更改它。有人做过这样的事吗?

【问题讨论】:

  • 使用 scrollView.contentOffset 并将其与每个按钮的 frame.origin 进行比较?

标签: objective-c image button uiscrollview center


【解决方案1】:

将下面的代码放在你想检查按钮是否在scrollView的中心。

for (UIView *view in scrollView.subviews) {

    if ([view isKindOfClass:[UIButton class]]) {

        CGRect visibleRect = CGRectMake(scrollView.contentOffset.x, scrollView.contentOffset.y, scrollView.frame.size.height, scrollView.frame.size.width);
        CGRect centerRect = CGRectInset(visibleRect, 30, 30);
        BOOL isCentered = CGRectIntersectsRect(view.frame, centerRect);

        if (isCentered) {
            // the button is centered in the scroll view...
        }
    }

}

isCentered 现在会告诉你按钮是否在滚动视图中居中。您必须将 30 值更改为适合您的滚动视图大小的任何值。

【讨论】:

  • 我有这个工作,除了中心点不在可见滚动视图的中心,它似乎更靠近左侧。滚动视图为 320w x 105h,按钮为 50w x 50h。我也在检查 scrollViewDidScroll 委托。关于如何在滚动视图的中心而不是在左边那么远的任何想法?再次感谢您帮助我,您确实节省了我几个小时。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-12
  • 2019-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多