Aynı VC'deki kodun 2 farklı bölümündeki bir görünümde (Storyboard'da oluşturulan) programatik olarak program görüntülerini bazı görünümler oluşturuyorum, ancak farklı sonuçlar alıyorum. İşte benim kodudur:Farklı boyutlarda görüntülenen Resim Görüntüleme Sayısı - Swift
var images: Int?
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
switch images {
case 0:
imagesCount = countImages.noImage
case 1:
imageView1 = UIImageView(frame: CGRect(x: 0, y: 0, width: Int((viewForImages.frame.width)), height: Int((viewForImages.frame.height))))
imageView1.image = UIImage(data: imageData1!)
viewForImages.addSubview(imageView1)
case 2:
for view in self.viewForImages.subviews {
view.removeFromSuperview()
}
imageView1 = UIImageView(frame: CGRect(x: 0, y: 0, width: Int((viewForImages.frame.width)/2) - 1, height: Int((viewForImages.frame.height))))
imageView1.image = UIImage(data: imageData1!)
viewForImages.addSubview(imageView1)
imageView2 = UIImageView(frame: CGRect(x: Int(imageView1.frame.width) + 1, y: 0, width: Int((viewForImages.frame.width)/2), height: Int(viewForImages.frame.height)))
imageView2.image = UIImage(data: imageData2!)
viewForImages.addSubview(imageView2)
case 3:
for view in self.viewForImages.subviews {
view.removeFromSuperview()
}
imageView1 = UIImageView(frame: CGRect(x: 0, y: 0, width: Int((viewForImages.frame.width)/2) - 1, height: Int((viewForImages.frame.height))))
imageView1.image = UIImage(data: imageData1!)
viewForImages.addSubview(imageView1)
imageView2 = UIImageView(frame: CGRect(x: Int((viewForImages.frame.width)/2) + 1, y: 0, width: Int((viewForImages.frame.width)/2), height: Int((viewForImages.frame.height)/2) - 1))
imageView2.image = UIImage(data: imageData2!)
viewForImages.addSubview(imageView2)
imageView3 = UIImageView(frame: CGRect(x: Int((viewForImages.frame.width)/2) + 1, y: Int(imageView2.frame.height) + 1, width: Int((viewForImages.frame.width)/2), height: Int((viewForImages.frame.height))/2))
imageView3.image = UIImage(data: imageData3!)
viewForImages.addSubview(imageView3)
default:
break
}
}
Yukarıdaki kod düzgün görüntü Görüntüleme gösteriyor ama ben de Çekirdek veri bu görüntüleri kaydetme ve am yine bu görünüm açtığınızda, daha sonra viewDidLoad()
: VC yükler, görüntüler aşağıda böyle görünür olduğunda, Yanioverride func viewDidLoad() {
super.viewDidLoad()
self.imageView1 = UIImageView(frame: CGRect(x: 0, y: 0, width: Int((viewForImages.frame.width)/2) - 1, height: Int((viewForImages.frame.height))))
if let data = entry.imageData1 {
self.imageView1.image = UIImage(data: data)
}
viewForImages.addSubview(imageView1)
self.imageView2 = UIImageView(frame: CGRect(x: Int((viewForImages.frame.width)/2) + 1, y: 0, width: Int((viewForImages.frame.width)/2), height: Int((viewForImages.frame.height)/2) - 1))
if let data = entry.imageData2 {
self.imageView2.image = UIImage(data: data)
}
viewForImages.addSubview(imageView2)
self.imageView3 = UIImageView(frame: CGRect(x: Int((viewForImages.frame.width)/2) + 1, y: Int(imageView2.frame.height) + 1, width: Int((viewForImages.frame.width)/2), height: Int((viewForImages.frame.height))/2))
if let data = entry.imageData3 {
self.imageView3.image = UIImage(data: data)
}
viewForImages.addSubview(imageView3)
}
: Ben bu kodu eklemiş
Not: viewForImages, Storyboard'u kullanarak oluşturduğum görünümdür ve giriş, 3 özniteliği olan bir varlıktır: image Veri1,2,3, İkili Veri (NSData). Şimdi, bu görünüm belirdiğinde, Görünümün zaten görüntüleri varsa, yukarıdaki kodu çalıştırır, ancak ilk önce imageView1, görünümün yaklaşık% 80'ini kaplar ve diğer 2 adet resim Görünümü nadiren görüntülenir. Neden öyle?
Nadiren ne demek istiyorsun? Rastgele gizlendiler mi ya da her zaman ortaya çıkıyorlar ama boyut küçük mü? –
imageView1, görünümün çoğunu kapsar (viewForImages). Onun genişliği, programladığım gibi değil. Bundan daha fazlası var. Bu yüzden bir sonraki görüntü görüntüleri neredeyse görüş alanının sonunda görünür. Bu yüzden, her iki resmin sadece% 20'si görünür (bir tanesi diğerinin üstünde, Twitter'da 3 resim gibi). –
@AksharPatel Ekran görüntülerini ekledim. Görebilirsin. –