更改 UIScrollView 中间按钮的大小
Posted
技术标签:
【中文标题】更改 UIScrollView 中间按钮的大小【英文标题】:Change Size of button in the middle of a UIScrollView 【发布时间】:2013-03-12 18:29:33 【问题描述】:我有一个包含多个按钮的 uiscrollview。当用户将按钮滚动到滚动视图的中间时,我需要更改它的大小。我以编程方式创建并添加了这些按钮,并为每个按钮分配了一个标签号。我只是不确定如何确定哪个按钮在中间,以便我可以更改它。有人做过这样的事吗?
【问题讨论】:
使用 scrollView.contentOffset 并将其与每个按钮的 frame.origin 进行比较? 【参考方案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 委托。关于如何在滚动视图的中心而不是在左边那么远的任何想法?再次感谢您帮助我,您确实节省了我几个小时。以上是关于更改 UIScrollView 中间按钮的大小的主要内容,如果未能解决你的问题,请参考以下文章
UIScrollView 内的水平 UIStackView 不滚动