Шрифты становятся размытыми, если я масштабирую UITextView в viewDidLoad - PullRequest
0 голосов
/ 22 января 2019

Я создал UITextView в viewDidLoad, установил немного текста и масштабировал его. Тем не менее, текст очень размыто, даже если я изменяю contentScaleFactor. Однако, если я добавлю еще одну кнопку, чтобы снова установить contentScaleFactor, текст станет очень четким. Есть ли способ решить эту проблему? Я использую этот код в iOS 12.

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    self.view.backgroundColor = [UIColor whiteColor];
    UITextView *textView = [[UITextView alloc] initWithFrame:CGRectZero];
    textView.font = [UIFont systemFontOfSize:20.f];
    textView.text = @"Happy";
    textView.textAlignment = NSTextAlignmentCenter;
    textView.backgroundColor = [UIColor yellowColor];
    textView.textColor = [UIColor blackColor];
    [self.view addSubview:textView];
    [textView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.leading.trailing.equalTo(self.view);
        make.top.equalTo(self.view).offset(480);
        make.height.mas_equalTo(30);
    }];
    self.textView = textView;
    textView.transform = CGAffineTransformScale(textView.transform, 8, 8);
    [self applyScale:8];

    UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
    button.backgroundColor = [UIColor redColor];
    [self.view addSubview:button];
    [button mas_makeConstraints:^(MASConstraintMaker *make) {
        make.bottom.equalTo(self.view).offset(-10);
        make.centerX.equalTo(self.view);
        make.width.mas_equalTo(80);
        make.height.mas_equalTo(50);
    }];
    [button addTarget:self action:@selector(onTapBtn) forControlEvents:UIControlEventTouchUpInside];
}

- (void)onTapBtn {
    [self applyScale:8];
}

- (void)applyScale:(CGFloat)scale {
    [self applyScale:scale toView:self.textView];
}

- (void)applyScale:(CGFloat)scale toView:(UIView *)view {
    view.contentScaleFactor = scale;
    view.layer.contentsScale = scale;
    for (UIView *subview in view.subviews) {
        [self applyScale:scale toView:subview];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...