У меня есть UIViewController с UIScrollView
на нем. Я хотел бы иметь поведение в мое приложение следующим образом:Почему я не могу установить масштаб по умолчанию для моего UIScrollView в моем приложении iOS swift?
1) пользователь открывает приложение и видит фотографию в нормальном размере (размер UIScrollView по умолчанию)
2), когда пользователь один краны на фото, он переходит в полноэкранный режим, а также пользователь может приближать и перемещать фотографию вокруг
3) когда пользователь снова нажимает на фотографию в полноэкранном режиме, он сжимается до исходного размера от точки 1), а масштабирование и перемещение отключено.
Для обработки прокрутки и перемещения фотографии вокруг я решил пойти с этим плагином: https://github.com/huynguyencong/ImageScrollView.
Мой код выглядит следующим образом:
@IBOutlet weak var requestPhoto: ImageScrollView!
var originalPhotoSize :CGRect?
var isPhotoOnFullScreen: Bool = false
override func viewDidLoad() {
super.viewDidLoad()
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: "tapHandler:")
self.requestPhoto.addGestureRecognizer(tapGestureRecognizer)
self.requestPhoto.userInteractionEnabled = true
originalPhotoSize = requestPhoto.frame
}
override func viewDidAppear(animated: Bool) {
super.viewWillAppear(animated)
requestPhoto.scrollEnabled = false
requestPhoto.pinchGestureRecognizer?.enabled = false
requestPhoto.panGestureRecognizer.enabled = false
requestPhoto.zoomScale = 1
}
func tapHandler(sender: UITapGestureRecognizer) {
if sender.state == .Ended {
if(isPhotoOnFullScreen == true){
self.requestPhoto.frame = originalPhotoSize!
self.requestPhoto.zoomScale = 1
self.requestPhoto.pinchGestureRecognizer?.enabled = false
self.requestPhoto.scrollEnabled = false
isPhotoOnFullScreen = false
}else{
self.requestPhoto.frame = self.view.frame
self.requestPhoto.pinchGestureRecognizer?.enabled = true
self.requestPhoto.scrollEnabled = true
isPhotoOnFullScreen = true
}
}
}
И мои точные проблемы:
1), когда пользователь открывает приложение, он может ущипнуть, чтобы увеличить на маленькую фотографию (даже если я создал requestPhoto.pinchGestureRecognizer?.enabled = false
в viewDidLoad
)
2) когда пользователь отбирает фотографию, которую он открывает на полноэкранном режиме. Это хорошо, но когда он зажимает, чтобы увеличить, и в какой-то момент один раз кратким снимком, он возвращается к небольшому размеру, но уровень масштабирования не установлен на значение по умолчанию (хотя я устанавливаю self.requestPhoto.zoomScale = 1
)
Можете ли вы помогите мне с этими двумя проблемами выше?
==== EDIT
говоря о проблеме нет. 1 - когда пользователь открывает приложение, он может зажимать, чтобы приближать фотографию, но когда он открывает изображение в полноэкранном режиме и возвращается в нормальный режим - тогда масштабирование отключено. Почему он не отключен с самого начала?
говоря о проблеме нет. 2 - как-то эта строка self.requestPhoto.zoomScale = 1
не работает, когда я напечатал значение self.requestPhoto.zoomScale
сразу после установки его в 1, оно все еще имеет другое значение, я не уверен, является ли это этим плагином (https://github.com/huynguyencong/ImageScrollView) или я что-то не так ?
Спасибо за это! Однако на данный момент я решил остаться с сторонним sdk и попытался исправить свои ошибки, если это не сработает, я попытаюсь использовать ваше решение! Возможно, вы знаете, что может быть причиной моих проблем? – randomuser1