Автомат эргүүлэлт ба хэмжээ тохируулалт
willAnimateRotationToInterfaceOrientation: duration: юм. Эргүүлэлт тохиолдроогүй, зөвхөн эргүүлэлт эхлэх үед бидний дуудсан суперклассаас дээрх арга нь үүсэлтэй. Энэ аргад бидний авах үйлдлүүд нь эргүүлэлтийн хөдөлгөөний эхний хагас учраас хөдөлгөөнтэй байна.
Энэ аргын хувьд бид харагдацын шинж чанарыг хэвтээ, эсвэл босоо горимд тавих, шинэ чиглэлд зохих ёсоор эргүүлэх зэрэг хандлагыг авч үздэг.
Обьектыг кодоор үүсгэх
Харагдацыг view хэсэгт бэлэн харагдцуудыг өрөх зарчимаар үүсгэхээс гадна кодын аргаар үүсгэн ViewController-нхоо view хэсэгт нэмэх зарчимаар үүсгэж болно.
Эргүүлэлтийг дэмжих алхмыг зааж өгөх
Кодоор үүсгэхийн давуу тал нь:
- Динамик харагдацын үүсгэж болно.
- Мөн нарийн кординат шаардагдах харагдацыг үүсгэхэд хялбар.
- Олон ижил харагдацыг үүсгэх хэрэгтэй.
- Эргүүлэлт хийхэд хялбар
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
return (
interfaceOrientation == UIInterfaceOrientationPortrait ||
interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
interfaceOrientation == UIInterfaceOrientationLandscapeRight
);
}
- (void)viewDidLoad
{
[super viewDidLoad];
button = [[UIButton alloc] init];
button.frame = CGRectMake(60, 30, 200, 200);
UIImage *facebookImage = [UIImage imageNamed:@"facebook.png"];
UIImage *twitterImage = [UIImage imageNamed:@"twitter.png"];
[button setBackgroundImage:facebookImage forState:UIControlStateNormal];
[button setBackgroundImage:twitterImage forState:UIControlStateHighlighted];
[self.view addSubview:button];
}
[button addTarget:self action:@selector(myAction) forControlEvents:UIControlEventTouchUpInside];
shoaldAutorotateToInterfaceOrientatian нь application-ыг төхөөрмжийн ямар байрлалд байрлахыг илэрхийлнэ.
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
- UIInterfaceOrientationPortraitUpsideDown
Эргүүлэх товчнуудыг зөөх
Босоо горимд тавигдах харагдац нь хэрвээ төлвийн мөргүй бол 320 пикселийн өргөнтэй, өндөр нь 460 буюу 480 пиксель байна. Төлвийн мөр нь дэлгэцний дээд хэсэг дэхь 20 пикселийн зураас бөгөөд энэ нь дохионы хүч, цаг хийгээд батерейн цэнэг зэргийг харуулдаг.
Утас хэвтээ горимд шилжихэд харагдац програмын цонхны дагуу эргэх бөгөөд шинэ чиглэлд тохирохын тулд хэмжээгээ өөрчилдөг. Өргөн нь 480 пиксель, өндөр нь 300 пиксель болно (хэрвээ төлвийн мөргүй бол 320 пиксель).
Обьектүүдын зайг хамгийн сайнаар ашиглахын тулд та харагдацыг willAnimateRotationToInterfaceOrientation:duration: аргаар солих хэрэгтэй. Эцсийн эргүүлэлтийн хөдөлгөөн болохоос өмнө, гэхдээ эргүүлэлт болсоны дараа дээрх арга нь автоматаар дуудагддаг.
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation duration:(NSTimeInterval)duration {
if (interfaceOrientation == UIInterfaceOrientationPortrait ||
interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) {
button.frame = CGRectMake(60, 30, 200, 200);
} else {
button.frame = CGRectMake(30, 60, 200, 200);
}
}