Для Eclipse:
Добавлены две строки в eclipse.ini
Вторая строка представляет местоположение JDK файла javaw.exe.
-vm
C: \ Program Files \ Java \ jdk1.7.0_60 \ bin \ javaw.exe
blockquote>Примечание: место -vm строк до - vmargs, в противном случае используется местоположение по умолчанию.
Для STS
Измените то же, что указано выше в STS.ini
Вы пытались присвоить текущее преобразование свойству, затем изменили это скопированное свойство и затем переназначили представление? что-то вроде:
let originalTransform = view.transform
let scaledTransform = originalTransform.scaledBy(x: 0.2, y: 0.2)
view.transform = scaledTransform
Я создал анимацию кнопки, используя этот метод, и она работала нормально, но я не уверен, что это то, что вы ищете.
Прежде всего, спасибо @gmogames, что нашли время, чтобы предложить свои предложения. Всегда полезно иметь возможность обмениваться идеями !!!
Проблема действительно имела отношение к сбросу точки привязки (или центра) представления перед применением нового преобразования, чтобы анимация работала правильно. Поэтому, используя гораздо более простой пример масштабирования вида после его перемещения , вот как выглядит новый метод:
extension UIView {
func scaleView(scaleFactor: CGPoint, duration: TimeInterval) {
// store the view original center
let oCenter = self.center
// get the current transformation
let cTransform = self.transform
// set the new center of the view
self.center = CGPoint(x: self.frame.midX, y: self.frame.midY)
// clears the transform matrix from potential prior translation
// Note that you need to take into account potential prior scale of the view into the translation vector!!
self.transform = self.transform.translatedBy(x: -cTransform.tx / cTransform.a, y: -cTransform.ty / cTransform.d)
// Animates the transformation
let animator = UIViewPropertyAnimator(duration: duration, timingParameters: UICubicTimingParameters(controlPoint1: CGPoint(x: 0, y: 0), controlPoint2: CGPoint(x: 1, y: 1))
animator.addAnimations {
self.transform = self.transform.scaledBy(x: scaleFactor.x, y: scaleFactor.y)
}
// resets the View to its original center and apply the transformation so that the view stays in the right end position
animator.addCompletion { (position) in
if position == UIViewAnimatingPosition.end {
self.center = oCenter
self.transform = cTransform.scaledBy(x: scaleFactor.x, y: scaleFactor.y)
}
}
animator.startAnimation()
}
}
Вот результат анимации: move + шкала + шкала + вернуться к оригиналу