1

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

4

1 回答 1

1

将以下代码放在您要检查按钮是否位于滚动视图中心的位置。

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 值更改为适合您的滚动视图大小的任何值。

于 2013-03-22T19:24:45.733 回答