Один из способов сделать это - вывести кнопку из ScrollView и обновить ее положение в событии scrollViewDidScroll
. Вы можете реализовать это событие, расширив UIScrollViewDelegate
(или UITableViewDelegate
, UICollectionViewDelegate
для UITableViews
и UICollectionViews
)
Пример:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let yOffset = scrollView.contentOffset.y
let newPossition = max(scrollableButtonTopConstraint.constant - yOffset, self.minimumPosition)
self.scrollableButtonTopConstraint.constant = newPossition
}
Здесь minimumPosition
- это константа, не позволяющая кнопке подняться выше, чем следовало бы. Вам следует установить значение, соответствующее вашей ситуации. Кроме того, не забудьте установить делегата в представлении прокрутки и создать выход для scrollableButtonTopConstraint
.