Я создаю несколько изображений в программном виде внутри представления (созданного в Storyboard) на двух разных частях кода в том же VC, но у меня разные результаты. Вот мой код:Изображения, отображаемые в разных размерах - 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
}
}
выше код, показывающий изображения Просмотров должным образом, но я также сохранение этих изображений в Core Data и когда я открываю эту точку зрения еще раз, а затем в 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)
}
Таким образом, всякий раз, когда VC загружает изображения появляются, как это показано ниже:
Примечание: viewForImages - это представление, которое я создал с помощью Storyboard, и запись - это объект с 3 атрибутами: образ Data1,2,3 типа двоичных данных (NSData). Теперь, когда появляется это представление, если в представлении уже есть изображения, он запускает вышеуказанный код, но первый imageView1 охватывает около 80% представления и другие 2 изображения. Представления редко появляются. Почему так?
Что вы подразумеваете под редким поясом? Они скрыты случайным образом или появляются каждый раз, но размер невелик? –
imageView1 охватывает большую часть вида (viewForImages). Его ширина не так, как я запрограммировал. Это намного больше. Вот почему следующие изображения отображаются почти в конце обзора. Таким образом, отображаются только 20% обоих изображений (один находится на вершине другого, как 3 изображения в Twitter). –
@AksharPatel Я добавил скриншоты. Ты можешь видеть. –