Прежде чем объяснять мою проблему, важно сказать, что я уже реализовал предложение, сделанное в этом вопросе, и я думаю, что мои сомнения в этом методе animateWithDuration
разные, несмотря на то, что оба вопроса имеют очень похожий заголовок.
Итак, я новичок Swift, и я делаю небольшие проекты в Swift, основанные на предыдущих демонстрациях Objective C, которые я делал раньше.
Это мой код Objective C:
- (void)moveSideBarToXposition: (int) iXposition{
[UIView animateWithDuration:0.5f
delay:0.1
options: UIViewAnimationOptionTransitionNone
animations:^{ self.mainView.frame = CGRectMake(iXposition, 20, self.mainView.frame.size.width, self.mainView.frame.size.height); }
completion:^(BOOL finished){
if (self.isSidebarHidden==YES) {
self.isSidebarHidden = NO;
}
else{
self.isSidebarHidden = YES;
}
}];
}
И это моя версия Swift:
func moveSideBarToXposition(iXposition: Float) {
UIView.animateWithDuration(0.5, delay: 1.0, options: UIViewAnimationTransition.None, animations: { () -> Void in
self.contentView.frame = CGRectMake(iXposition, 20, self.contentView.frame.size.width, self.contentView.frame.size.height)
}, completion: { (finished: Bool) -> Void in
if isMenuHidden == true {
isMenuHidden = false
} else {
isMenuHidden = true
}
})
}
И я получаю эту ошибку.
Невозможно вызвать 'animateWithDuration' с помощью списка аргументов типа '(Double, delay: Double, options: UIViewAnimationTransition, анимация:() → Пустота, завершение: (Bool) → Void) '
Я прочитал документацию, но на самом деле я не уверен, в чем проблема.
Btw, я работаю над Xcode 7 и Swift 2.0