У меня есть эта кнопка со стрелкой вверх в UITableViewCell, которая должна вращаться на 180 градусов при нажатии или когда метод вызывается в другом месте. Это действительно работает, когда вы нажимаете кнопку и обновляете sender.transform.Преобразование UIView внутри UITableViewCell не работает
@IBAction func rotate(sender: UIButton) {
if (top)
{
UIView.animateWithDuration(0.5, animations: {
sender.transform = CGAffineTransformMakeRotation((360.0 * CGFloat(M_PI))/180.0)
})
}
else
{
UIView.animateWithDuration(0.5, animations: {
sender.transform = CGAffineTransformMakeRotation((180.0 * CGFloat(M_PI))/180.0)
})
}
}
Если изменить код так, что я ссылаться на кнопку, а не от UITableViewCell к чему-то вроде этого, это не работает. Кнопка не вращается.
IBAction func rotate(sender: UIButton) {
let detailCell = tableView.cellForRowAtIndexPath(NSIndexPath(forRow: 0, inSection: 0)) as! DetailCell
if (top)
{
UIView.animateWithDuration(0.5, animations: {
detailCell.arrowButton.transform = CGAffineTransformMakeRotation((360.0 * CGFloat(M_PI))/180.0)
})
}
else
{
UIView.animateWithDuration(0.5, animations: {
detailCell.arrowButton.transform = CGAffineTransformMakeRotation((180.0 * CGFloat(M_PI))/180.0)
})
}
}
В принципе, я хочу, чтобы иметь возможность вращать кнопку от UITableViewCell в другом методе, который не включает в себя нажав на кнопку, так что мне нужно, чтобы иметь возможность ссылаться на кнопки из UITableViewCell и поверните его. Каков правильный способ сделать это?
Возможно, я не указал его, но стрелкаButton - это IBOutlet из моего пользовательского UITableViewCell. Я ожидаю, что отправитель и detailCell.arrowButton будут одинаковыми и должны вращаться. Только отправитель из IBAction вращается, и это доступно только в том случае, если действие происходит от щелчка. Если я нажму, и вместо отправителя я конкретно ссылаюсь на выходы стрелки из ячейки, он ничего не делает. – inquiringmind
У вас, вероятно, сломанный выход. Журнал arrowButton. Держу пари, что это ноль. –
Я не думаю, что это ноль, хотя я не зарегистрировал его. Когда я помещаю его в cellForRowAtIndexPath, он не делает анимацию, но поворачивает ее 180, но затем я не могу заставить ее вращаться снова, даже если я попытаюсь перезагрузить Data и повернуть ее на основе некоторого флага. – inquiringmind