2012-12-05 13 views
19

görüntüleyen bir UIImageView oluşturun. Bu boyutta bir görüntüyü görüntüleyen xcode uygulamasında açılan bir kutu oluşturmaya çalışıyorum. Aşağıdakigörüntüyü kırpıp yalnızca 100w 100h değerinde 50x

var, ancak bu tam boyutlu görüntü oluşturur ve sadece gösterir. Nasıl 100w 100 l'de 50 ve 200'de nasıl gösteririm? CGRect kullanabilir miyim?

Ayrıca, tıklatıldığında onu kaybolmasına neden olacak şekilde yapabilir miyim?

düzenleme # 1 ben görüntüyü aşağı yeniden boyutlandırmak istemiyorum - daha doğrusu sadece 100 kare piksel çekin ve bir çerçeve içinde onları yerleştirir.

+0

Sen dinlemeyle ilgili UIImageView üzerine UITapGestureRecognizer eklemeniz gerekir. – nhahtdh

+0

Düzenleme için: Daha sonra çerçeve yerine sınırları ayarlayın. ContentMode'a ihtiyacınız olmayacak, ancak clipsToBounds'u YES olarak ayarlamanız gerekiyor. – nhahtdh

cevap

67

Lütfen aşağıdaki kodu kullanmayı deneyin. ile

MyImageview.contentMode = UIViewContentModeScaleAspectFill; 
MyImageview.clipsToBounds = YES; 
+0

Evet ... Bu 2, çerçeveyle birlikte ayarlanmalıdır. – nhahtdh

+0

thx P, bu resim yeniden boyutlandırılıyor - orijinal boyutu elde etmek için herhangi bir yol var mı? – timpone

+0

Denediniz mi MyImageview.contentMode = UIViewContentModeTopLeft; –

15

yapabilirsiniz kırpma görüntü kodunun altında:

CGRect cropRegion = CGRectMake(50, 200, 100, 100); 
UIImage *image = [UIImage imageNamed:@"beach.jpg"]; 
CGImageRef subImage = CGImageCreateWithImageInRect(image.CGImage, cropRegion); 
UIImage *croppedImage = [UIImage imageWithCGImage:subImage]; 
UIImageView *newView = [[UIImageView alloc] initWithImage:croppedImage]; 
+0

'da "Clip Subviews" ayarına eşdeğer Bu mükemmel çalışır. Sadece yeni bir mahsul için yeni bağlamlar ve şeyler yaratmayı gerektirmeyen bir çözüm görmek güzel. – weienw

8

Ayrıca Klip subviews Film şeridinde seçeneğini işaretleyerek kırpma efekti elde edebilirsiniz.

enter image description here

+0

Hayır, @Yuchenzhong –

+0

@Mansuu çalışmıyor. Çalışmalı. Aksi takdirde, bu iki ayarın eşdeğeri olan https://stackoverflow.com/a/13715487/1035008 kodunda bunu yapmayı deneyin. –

İlgili konular