123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- //
- // JXCategoryTitleVerticalZoomCell.m
- // JXCategoryView
- //
- // Created by jiaxin on 2019/2/14.
- // Copyright © 2019 jiaxin. All rights reserved.
- //
- #import "JXCategoryTitleVerticalZoomCell.h"
- #import "JXCategoryTitleVerticalZoomCellModel.h"
- @implementation JXCategoryTitleVerticalZoomCell
- - (void)reloadData:(JXCategoryBaseCellModel *)cellModel {
- [super reloadData:cellModel];
- JXCategoryTitleVerticalZoomCellModel *myCellModel = (JXCategoryTitleVerticalZoomCellModel *)cellModel;
- if (myCellModel.isTitleLabelZoomEnabled) {
- //先把font设置为缩放的最大值,再缩小到最小值,最后根据当前的titleLabelZoomScale值,进行缩放更新。这样就能避免transform从小到大时字体模糊
- UIFont *maxScaleFont = [UIFont fontWithDescriptor:myCellModel.titleFont.fontDescriptor size:myCellModel.titleFont.pointSize*myCellModel.maxVerticalFontScale];
- CGFloat baseScale = myCellModel.titleFont.lineHeight/maxScaleFont.lineHeight;
- if (myCellModel.isSelectedAnimationEnabled && [self checkCanStartSelectedAnimation:myCellModel]) {
- JXCategoryCellSelectedAnimationBlock block = [self preferredTitleZoomAnimationBlock:myCellModel baseScale:baseScale];
- [self addSelectedAnimationBlock:block];
- }else {
- self.titleLabel.font = maxScaleFont;
- self.maskTitleLabel.font = maxScaleFont;
- CGAffineTransform currentTransform = CGAffineTransformMakeScale(baseScale*myCellModel.titleLabelCurrentZoomScale, baseScale*myCellModel.titleLabelCurrentZoomScale);
- self.titleLabel.transform = currentTransform;
- self.maskTitleLabel.transform = currentTransform;
- }
- }else {
- if (myCellModel.isSelected) {
- self.titleLabel.font = myCellModel.titleSelectedFont;
- self.maskTitleLabel.font = myCellModel.titleSelectedFont;
- }else {
- self.titleLabel.font = myCellModel.titleFont;
- self.maskTitleLabel.font = myCellModel.titleFont;
- }
- }
- [self.titleLabel sizeToFit];
- }
- @end
|