Skip to content

Instantly share code, notes, and snippets.

@terrybu
Created December 9, 2015 20:37
Show Gist options
  • Save terrybu/d7afae478b005c97a675 to your computer and use it in GitHub Desktop.
Save terrybu/d7afae478b005c97a675 to your computer and use it in GitHub Desktop.
original way to get floating middle button to work for tab bar
let buttonImage = UIImage(named: "Btn_Menu_BROWSE_INACTIVE_03")
let button = UIButton(type: UIButtonType.Custom)
button.autoresizingMask = [UIViewAutoresizing.FlexibleRightMargin, .FlexibleLeftMargin, .FlexibleBottomMargin, .FlexibleTopMargin]
button.frame = CGRectMake(0.0, 0.0, buttonImage!.size.width, buttonImage!.size.height);
let buttonHighlighted = UIImage(named: "Btn_Menu_BROWSE_ACTIVE_03")
button.setBackgroundImage(buttonImage, forState: UIControlState.Normal)
button.setBackgroundImage(buttonHighlighted, forState: UIControlState.Highlighted)
let heightDifference = buttonImage!.size.height - self.tabBar.frame.size.height;
if (heightDifference < 0) {
button.center = self.tabBar.center
} else {
var center = self.tabBar.center
center.y = center.y - heightDifference/2.0
button.center = center
}
button.layer.cornerRadius = button.frame.height/2
button.clipsToBounds = true
button.addTarget(self, action: "changeTabToBrowse", forControlEvents: UIControlEvents.TouchUpInside)
view.addSubview(button)
}
//second more simple way
private func addCenterButtonWithImage(buttonImage: UIImage, highlightImage:UIImage?)
{
let frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height)
button = UIButton(frame: frame)
button.setBackgroundImage(buttonImage, forState: UIControlState.Normal)
button.setBackgroundImage(highlightImage, forState: UIControlState.Highlighted)
var heightDifference:CGFloat = buttonImage.size.height - self.tabBar.frame.size.height
if heightDifference < 0 {
button.center = self.tabBar.center;
}
else
{
var center:CGPoint = self.tabBar.center;
center.y = center.y - heightDifference/2.0;
button.center = center;
}
button.addTarget(self, action: "changeTabToMiddleTab:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(button)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment