Как пользовательский UIView обрабатывает поворот экрана

По какой-то причине я делаю собственный вид, переопределяю его метод drawrect, чтобы нарисовать строку и img. просто что-то вроде:

@implementation WaterMarkView

- (void)drawRect:(CGRect)rect {
    NSLog(@"drawRect");

    NSString* test = @"This is a test string";
    NSDictionary *dict = @{NSFontAttributeName:[UIFont systemFontOfSize:22],
                           NSForegroundColorAttributeName:[UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:1.0],
                           };

    NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:16], NSFontAttributeName, nil];
    CGSize strsize = [[[NSAttributedString alloc] initWithString:test attributes:attributes] size];

    CGRect screentBounds = [[UIScreen mainScreen] bounds];
    [test drawAtPoint:CGPointMake((screentBounds.size.width - strsize.width)/2,
                                  (screentBounds.size.height - strsize.height)/2) withAttributes: dict];
}


@end

Добавьте его в viewController

....
WaterMarkView* view = [[WaterMarkView alloc] init];
view.backgroundColor = [UIColor whiteColor];
[self.view addSubview:view];
....

это работает отлично.

Однако при повороте экрана он будет четко видеть, что переход строки не плавный, а безобразный.

Когда я добавлю строку UILable, она будет плавно переходить при повороте экрана

Что я могу сделать, чтобы сделать пользовательский переход UIView плавным при повороте экрана?

1 ответ

Просто установите contentMode в UIViewContentModeRedrawрежим по умолчанию UIViewContentModeScaleToFill будет масштабировать содержимое.

Другие вопросы по тегам