Я попытался ответить на этот вопрос, который о разнице между view.frame и view.bounds:Почему вид исчезает после поворота M_PI * 0,25 (но не M_PI * 0,26)
я написал это:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self showPropertiesOfLabel];
self.label.transform = CGAffineTransformMakeRotation(M_PI * 0.25);
[self showPropertiesOfLabel];
}
- (void) showPropertiesOfLabel {
NSLog(@"bounds.origin.x: %f", self.label.bounds.origin.x);
NSLog(@"bounds.origin.y: %f", self.label.bounds.origin.x);
NSLog(@"bounds.size.width : %f", self.label.bounds.size.width);
NSLog(@"bounds.size.height: %f", self.label.bounds.size.height);
NSLog(@"frame.origin.x : %f", self.label.frame.origin.x);
NSLog(@"frame.origin.y : %f", self.label.frame.origin.y);
NSLog(@"frame.size.width : %f", self.label.frame.size.width);
NSLog(@"frame.size.width : %f", self.label.frame.size.height);
}
Но что погладил меня был тот факт, что моя точка зрения, что я назвал «ярлык» после того, как
self.label.transform = CGAffineTransformMakeRotation(M_PI * 0.25);
исчез! Но все же сообщается о его значениях фрейма и границ (а точнее, соответственно).
Самое интересное заключается в том, что если я изменил угол поворота:
self.label.transform = CGAffineTransformMakeRotation(M_PI * 0.26);
Он работает как положено. Вид больше не исчезает!
Я испытание это и на устройстве, как в тренажере:
Вот видео этого, тестирование в тренажере:
PS:
Это выглядит для меня, как ошибка.
EDIT: (? Ошибка)
Похоже, что это поведение вызвано механизмами Autolayout.
Вы можете отключить его, нажав на файл раскадровки и справа от Xcode должна быть вкладка «Показать файл инспектор» и снимите этот флажок:
Вот видео доказывание что это на самом деле проблема с Autolayout:
Но это до сих пор не ответили на вопрос.