L'implémentation actuelle est la suivante. Le bouton gris est flottant sur la vue déroulante. Est-il possible de faire apparaître le bouton une fois que la vue jaune (fin de la vue défilement) est atteinte. Ensuite, gardez-le flottant sur l'écran tout en bas.
J'utilise le code suivant:
override func scrollViewDidScroll(scrollView: UIScrollView) {
if (scrollView.contentOffset.y >= (scrollView.contentSize.height - scrollView.frame.size.height)) {
//reached bottom - how to show button below yellow
// and keep it floating as shown above
}
}
Ajout d'un code supplémentaire de ce que j'ai essayé jusqu'à présent:
@IBOutlet weak var btnScroll: UIButton!
var startingFrame : CGRect!
var endingFrame : CGRect!
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if (scrollView.contentOffset.y >= (scrollView.contentSize.height - scrollView.frame.size.height)) && self.btnScroll.isHidden {
self.btnScroll.isHidden = false
self.btnScroll.frame = startingFrame // outside of screen somewhere in bottom
UIView.animate(withDuration: 1.0) {
self.btnScroll.frame = self.endingFrame // where it should be placed
}
}
}
func configureSizes() {
let screenSize = UIScreen.main.bounds
let screenWidth = screenSize.width
let screenHeight = screenSize.height
startingFrame = CGRect(x: 0, y: screenHeight+100, width: screenWidth, height: 100)
endingFrame = CGRect(x: 0, y: screenHeight-100, width: screenWidth, height: 100)
}
override func viewDidLoad() {
super.viewDidLoad()
configureSizes()
}
Vous pouvez simplement cacher/réafficher le bouton dans votre instruction if que vous avez déjà calculé et commenté ? Ou est-ce autre chose que vous voulez réaliser? –
@Sneak Merci d'avoir répondu! Lorsque l'utilisateur affiche le contenu de 'UIScrollView', le bouton n'apparaît pas. Il semble que ce soit sous la vue jaune. Et une fois qu'il apparaît sur l'écran, il doit persister comme indiqué dans l'image ci-dessus. En affichant la méthode ci-dessus, n'apparaîtra-t-il pas brusquement sur l'écran plutôt que d'apparaître comme si elle était en dessous de la vue jaune? Merci encore. S'il te plait peux-tu aider. –
Eh bien, vous pouvez simplement utiliser une méthode d'animation UIView pour l'animer à l'écran, une fois l'animation terminée, vous pouvez simplement le garder là si vous ne voulez pas le cacher à nouveau. Voici un exemple: https://stackoverflow.com/questions/42326892/uiview-appereance-from-bottom-to-top-and-vice-versacore-animation –