Как пользовательский 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
будет масштабировать содержимое.