2013-10-16 28 views

cevap

18
CGRect frame = self.View1.frame; 
frame.size.height = self.view.bounds.size.height; 
self.View1.frame = frame; 
+1

, dikkatli davranın. Sınırları veya çerçeve ile sopa. Onlar aynı değiller. Örneğin yatay yönlendirmeye döndürüldüğünde, çerçeve hala orijinal portre boyutlarına sahip olabilir, ancak sınırlar her zaman doğru olacaktır, çünkü sınırlar döndürme de dahil olmak üzere görünümde uygulanan herhangi bir dönüşümle güncelleştirilir. –

1
[self.View1 setFrame:CGRectMake(self.view.frame.origin.x, self.view.frame.origin.x, self.view.frame.size.height, self.view.frame.size.height)]; 
4

doğrudan sınır değiştiremezsiniz. CGRect'in görünümün sınırları dışında değiştirilmesi gerekiyor.

CGRect viewBounds = self.view1.bounds; 
viewBounds.size.height = self.view.bounds.size.height; 
self.view1.bounds = viewBounds; 

Bu yardımcı olur umarız!

1

diğer bazı yanıtlar için basit yorum eklemek için yeterli itibar yok, o yüzden burada önemli birkaç noktayı işaret yardım edeceğiz:

(1) sadece boyutunu değiştirerek ise bir görüntüyü yeniden boyutlandırmak (ama aynı yerde görüntü tutmak) isteyen sadeceise yeni bounds yerine

frame kümesi, daha sonra yerine yeni bir frame yeni bounds ayar cdownie önerisini izleyin. Örneğin, bir işaretçi elinizin görüntüsüne sahipseniz ve ekrana dokunduğunda görünmesini istiyorsanız, bounds'un boyutunu hızlıca ölçekleyin ve hızlı bir şekilde yedekleyin, aynı ekran konumunu Görüntünün bağlantı noktasını merkezde ayarlarsanız merkez noktası. Tony Friz'in önerdiği gibi frame'u değiştirdiyseniz, görüntü boyutunun küçültülmesiyle, resim sol üst köşesine çekilecektir (bunu fazladan bir matematikle düzeltmediğiniz sürece).

(2) uçlu veya görsel oluşturulan görüntü, kapatırsanız autoLayout ve Otomatik boyutlandırma, autoLayout etrafında hareketli görüntülerin veya bunları yeniden boyutlandırma edildiği herhangi manzarasına KAPALI gereken

. Eğer onu bırakırsanız, davranış (elbette) tuhaf ve öngörülemez olacaktır. Ayrıca, Autolayout kapalıyken, resmin Boyut Denetçisine gidin ve uygun kökeni (örneğin, merkez) ayarlayın ve tüm Otomatik Boyutlandırma kısıtlamalarını devre dışı bırakın. Bu şekilde, center özelliğini değiştirerek ve yeni bounds ayarlayarak boyutlandırmayı görüntü yerleşimi üzerinde tam denetime sahip olacaksınız. Bu yardımcı olur

Umut, Erik

İlgili konular