根据滚动更改UILabel字体大小

时间:2015-02-11 21:16:21

标签: ios objective-c fonts uiscrollview uilabel

我有一个UIScrollView,其中包含UILabelUILabel初始化为字体大小22.我想要的是在向下滚动期间字体越来越小,直到字体大小为19。当用户向上滚动时,它会越来越大,直到字体大小为22。

我试过实现这个,但是在滚动时字体变得小于19或者大于22。我做错了什么?

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    ScrollDirection scrollDirection;
    if (self.lastContentOffset > scrollView.contentOffset.y) {
        scrollDirection = ScrollDirectionRight;
    } else if (self.lastContentOffset < scrollView.contentOffset.y) {
        scrollDirection = ScrollDirectionLeft;
    }

    CGFloat fontSize = _textLabel.font.pointSize;

    if (scrollDirection == 1) {
        if (fontSize == 22) {
            fontSize = _textLabel.font.pointSize;
        } else {
            fontSize = _textLabel.font.pointSize + 0.05;
        }
    } else {
        if (fontSize == 19) {
            fontSize = _textLabel.font.pointSize;
        } else {
            fontSize = _textLabel.font.pointSize - 0.05;
        }
    }

    _textLabel.font = [UIFont fontWithName:@"SourceSansPro-Bold" size:fontSize];
}

0 个答案:

没有答案