Allen
Allen

Reputation: 189

Changing the appearance of my @IBAction button in Swift out of its func

I'm writing an app in which there's a scrollview and what I want is to set the button's alpha to 0 at first and change it into 1 when the user scrolls to the last page. I'm writing code like this:

@IBAction func startButton(sender: UIButton) {
        sender.layer.cornerRadius = 2.0
        sender.alpha = 0.0
 }

extension UserGuideViewController: UIScrollViewDelegate {
    func scrollViewDidScroll(scrollView: UIScrollView) {
        let offset = scrollView.contentOffset
        pageControl.currentPage = Int(offset.x / view.bounds.width)
        if pageControl.currentPage == numberOfPages - 1 {
            UIView.animateWithDuration(0.5) {
                self.startButton.alpha = 1.0
            }
        } else {
            UIView.animateWithDuration(0.2) {
                self.startButton.alpha = 0.0
            }
        }
    }
}

and it says the Value of type (UIButton)->() has no member alpha. I don't know how to do this. I know it would be easy if this button is an @IBOutlet but I need to set it as an @IBAction so that when it gets touched I can show another view controller.

Upvotes: 1

Views: 819

Answers (1)

Ole Begemann
Ole Begemann

Reputation: 135568

You need to create both an @IBOutlet and an @IBAction for the button. Drag twice from Interface Builder to your view controller and select the appropriate values (outlet or action) from the popup menu and give them different names. Then access the outlet in your scrollViewDidScroll method.

Upvotes: 3

Related Questions