How to create a round button?

前端 未结 10 1527
刺人心
刺人心 2020-12-02 09:33

I want to create a round circular button. This button should look like a circle.

This code gives round rectangular button.

UIButton *button = [UIBut         


        
相关标签:
10条回答
  • 2020-12-02 09:41

    In Xcode 7.0.0 on IOS 8 this code works perfectly for me. Provided the length and height of button frame is same.

    myButton.clipsToBounds = YES;
    myButton.layer.cornerRadius = myButton.layer.frame.size.width/2;
    
    0 讨论(0)
  • 2020-12-02 09:46

    Storyboard Option (should apply to Swift or ObjC) -

    If you prefer to work in Storyboards, there's another option.

    First, set the width and height to be the same value to make a perfect square.

    Second, type in the following attributes. IMPORTANT- make the value of your layer.cornerRadius half the size of your width.

    Then, when you run the app, your button will be round.

    0 讨论(0)
  • 2020-12-02 09:46

    Step 1. Use [UIButton buttonWithType:UIButtonTypeCustom] to create the button.

    Step 2. CGRectMake(100, 100, 100, 30) is a rectangular shape. Maybe you want to use the size of your image instead, like this:

    CGRect frame = CGRectMake(100, 100, 0, 0);
    frame.size = img.size;
    button.frame = frame;
    
    0 讨论(0)
  • 2020-12-02 09:50
    override func viewDidLoad() {
        super.viewDidLoad()
    
        let facebookButton = UIButton()
        facebookButton.frame = CGRectMake(30, 200, 150, 150)
        facebookButton.layer.cornerRadius = 75
        facebookButton.layer.masksToBounds = true
        self.view.addSubview(facebookButton)
        }
    

    ** To make round button you have to give same height and same width for the button and half of the value should be given to corner radius **

    0 讨论(0)
  • 2020-12-02 09:51

    a round-rect button with circular image does not satisfy the need of a round Button. Nor even if they are made custom buttons. This is because, This buttons will respond to taps even outside the circular part ( which is a just a .png image ) if it is inside the button size range and not clipped.

    The first answer(and only the first one by #vijay-apple-dev) given here is correct. You need to clip the boundary of the button frame in order to stop it responding just outside the image

    0 讨论(0)
  • 2020-12-02 09:57

    Using Swift like the answer of Vijay-Apple-Dev.blogspot :

    let ROUND_BUTTON_WIDTH_HEIGHT YourButtonWidthToBeSetHere   
    
    override func viewDidLoad() {
       super.viewDidLoad()
    
       var button = UIButton.buttonWithType(.Custom) as UIButton
       button.frame = CGRectMake(160, 100, ROUND_BUTTON_WIDTH_HEIGHT, ROUND_BUTTON_WIDTH_HEIGHT)
    
       button.layer.cornerRadius = ROUND_BUTTON_WIDTH_HEIGHT / 2.0
       button.layer.borderColor = UIColor.redColor().CGColor
       button.layer.borderWidth = 2.0
    
       button.setImage(UIImage(named:"TimoonPumba.png"), forState: .Normal)
       button.addTarget(self, action: "roundButtonDidTap", forControlEvents: .TouchUpInside)
       button.clipsToBounds = true
    
       view.addSubview(button)
    }
    
    func roundButtonDidTap() {
       NSLog(@"roundButtonDidTap Method Called");
    }
    
    0 讨论(0)
提交回复
热议问题