Сделать View видимым за пределами TableViewCell - PullRequest
0 голосов
/ 15 апреля 2020

Возможно ли иметь view внутри tableViewCell и сделать его видимым даже вне tableView-frame?

Мне понадобится это для анимации. Я попытался установить clipsToBounde = false, но это не решило проблему. view все еще вырезан за пределами tableViewFrame.

Мой view внутри tableViewCell:

 func setupLoadingAnimation(){

    successAnimation.translatesAutoresizingMaskIntoConstraints = false
    successAnimation.clipsToBounds = false
    self.contentView.addSubview(successAnimation)

    successAnimation.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: -60).isActive = true
    successAnimation.centerYAnchor.constraint(equalTo: contentView.centerYAnchor).isActive = true
    successAnimation.widthAnchor.constraint(equalToConstant: 160).isActive = true
    successAnimation.heightAnchor.constraint(equalToConstant: 160).isActive = true

    successAnimation.isHidden = true
    successAnimation.loopMode = .playOnce
 }

1 Ответ

1 голос
/ 15 апреля 2020

Необходимо убедиться, что для всех представлений в иерархии установлено ограничение false. Начните с суперпредставления successAnimation и go вверх по иерархии, это будет включать contentView ячейки и само табличное представление.

Еще одна вещь, которую вы должны искать, это то, что представления, которые добавленные в иерархию, позже будут отображаться поверх других, если они находятся на том же уровне, и поскольку табличное представление управляет своими ячейками, трудно определить, какие ячейки будут перекрывать вашу анимацию.

Чтобы это исправить Вы могли бы вызвать bringSubviewToFront() в вашем табличном представлении и передать ячейку, я бы сделал это прямо перед выполнением анимации успеха.

Другой альтернативой было бы поместить таблицу и представления успеха в совместно используемого родителя, таким образом вам нужно только убедиться, что успешное представление находится над табличным представлением один раз, когда вы добавляете представления.

...