Images Displayed in Different Sizes - Swift

I create some image images programmatically inside a view (created in Storyboard) on two different pieces of code in the same VC, but I get different results. Here is my code:

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

    }
}

Images are as follows

The above images display the correct images, but I also save these images to Core Data, and when I open this view again, I added this code to viewDidLoad ():

override 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)
}

So, whenever VC boots up, the images look like this: enter image description here

. viewForImages - , Storyboard, - 3 : Data1,2,3 Binary Data (NSData). , , , , imageView1 80% 2 . . ?

+4
2

, .

viewDiDLoad() switch .

self.viewForImages.layoutIfNeeded()
+1

imageView.contentMode = .ScaleAspectFill
+1

All Articles