我在UIScrollView中添加了一些标签,我想滚动时,中间标签的字体大小会变大。并且之前的中间标签字体大小缩小到更小。变化逐渐发生。如下。标签1向左移动缩小,标签2向中移动变大。 UIScroll视图中的所有标签。
我尝试了一些,比如当滚动我尝试缩放滚动页面时,看起来比我想象的要复杂......
任何人都有好主意?谢谢!
答案 0 :(得分:4)
非常简单。只需将UIScrollViewDelegate
粘贴到滚动视图上并执行类似的操作..
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
for (int i = 0; i < [scrollView.subviews count]; i++) {
UIView *v = [scrollView.subviews objectAtIndex:i];
float position = v.center.x - scrollView.contentOffset.x;
float offset = 2.0 - (abs(scrollView.center.x - position) * 1.0) / scrollView.center.x;
v.transform = CGAffineTransformIdentity;
v.transform = CGAffineTransformScale(v.transform, offset, offset);
}
}
但是,如果您对仿射变换没有留下深刻印象,您仍然可以使用offset
因子缩放矩形,并将UILabel设置为adjustsFontSizeToFitWidth
......您就完成了!
确保有足够的空间!否则它很容易失控。
假设:
答案 1 :(得分:0)
可以使用CoreAnimation完成。您必须保留主标签的索引(中间的那个),滚动完成后或滚动开始时(在UIScrollViewDelegate中使用适合您的方法)并简单地通过动画收缩侧标签。
答案 2 :(得分:0)
只要字体的大小(使用动画块)是中间的,而不是更小的字体。
您可以使用-(BOOL)isMiddle
向UILabel添加类别,并将其设置为true / false。