重寫shouldAutorateToInterfaceOrientation:,限制某個方向會改變原點的位置,原點會一直保持在左上角,但已經不是原來的左上角了
setStatusBarOrientation.改變狀態欄的方向。它不會改變原點的位置,但會改變鍵盤的方向
旋轉前self.myview的frame ={0,0,320,50}
CGAffineTransform at =CGAffineTransformMakeRotation(M_PI/2);
[self.myview setTransform:at];
旋轉后frame={135,-135,50,320},視圖的所有像素旋轉90度
坐標是相對于父視圖的
假如view已經轉成豎的,這時通過設置frame而不是通過setTransform強制成橫的話,會截掉部分圖像
坐標多次變換的合成,要以被變換的view的局部坐標系為參照,比如
testView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
UILabel*label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 20)];
label.text =@"Test";
label.tag=100;
[testView addSubview:label];
此時的 frame ={0,0,320,50}
CGAffineTransform at =CGAffineTransformMakeRotation(M_PI/2);先順時鐘旋轉90
at =CGAffineTransformTranslate(at,200,0);,
[self.testView setTransform:at];
此時的 frame ={135,65,50,320},可以看到寬高已經反過來了,view中的像素方向也改變了,而如果只是用setFrame來改變寬高的話是不會改變像素方向的