Daha önce otomatik düzen kısıtlamalarıyla hiç çalışmadım . Üzerinde çalıştığım küçük yeni bir uygulamam var ve NIB'nin görünümlerinin varsayılan olarak otomatik düzen şeklinde olduğunu fark ettim. Yani, işten fırsatı düşündüm ile kendisine ve Apple bununla nereye anlamaya çalışın.
İlk zorluk:
Bir MKMapView'ı yeniden boyutlandırmam gerekiyor ve onu yeni konuma canlandırmak istiyorum. Bunu alıştığım şekilde yaparsam:
[UIView animateWithDuration:1.2f
animations:^{
CGRect theFrame = worldView.frame;
CGRect newFrame = CGRectMake(theFrame.origin.x, theFrame.origin.y, theFrame.size.width, theFrame.size.height - 170);
worldView.frame = newFrame;
}];
... daha sonra, bir kardeş görünümü güncellendiğinde MKMapView orijinal yüksekliğine geri dönecektir (benim durumumda bir UISegmentedControl başlığı güncelleniyor [myUISegmentedControl setTitle:newTitle forSegmentAtIndex:0]
).
Peki, ne düşünüyorum ben o UISegmentedControl üstüne göreli olmasının ana görünümün yükseklik eşit olmaktan MKMapView kısıtlarını değiştirmek yapmak istediğim oldu kapsayan:V:[MKMapView]-(16)-[UISegmentedControl]
İstediğim şey, MKMapView yüksekliğinin kısaltılması, böylece harita görünümünün altındaki bazı kontrollerin ortaya çıkması. Ben Bunu yapmak için düşünüyorum ben alt bir UISegmentedControl üstüne sınırlandırılmıştır birine sabit bir tam boy görünümünden kısıtlamayı değiştirmek gerekiyor ... ve bunu yeni bir boyuta görünüm ruh doktoru olarak animasyon istiyorum.
Bu nasıl yapılır?
Düzenleme - Bu animasyon edilir değil animasyon görüntüsü alt 170 anında yukarı hareket etmez gerçi:
[UIView animateWithDuration:1.2f
animations:^{
self.nibMapViewConstraint.constant = -170;
}];
ve nibMapViewConstraint
IB'de alt Dikey Uzay kısıtlamasına bağlanır.