How to move UIButton programmatically. Objective-C Xcode

23,089

Solution 1

Simply uncheck "Use Autolayout" in the file inspector..

Solution 2

.h file

    #import <UIKit/UIKit.h>

@interface ViewController : UIViewController{
    IBOutlet UIButton *theButton;
}
@property(nonatomic, strong) IBOutlet UIButton *theButton;
-(IBAction)moveTheButton:(id)sender;

@end

.m file

-(IBAction)moveTheButton:(id)sender{
CGRect btFrame = theButton.frame;
btFrame.origin.x = 90;
btFrame.origin.y = 150;
theButton.frame = btFrame;

}

This code moves the button from one point to another.

Solution 3

Replace your code by the below, which includes code to remove auto resizing mask.

CGRect btFrame = answerButton.frame;
btFrame.origin.x = xOne;
btFrame.origin.y = yOne;
answerButton.autoresizingMask = UIViewAutoresizingNone;
answerButton.frame = btFrame;
Share:
23,089
SamBo
Author by

SamBo

Updated on January 23, 2020

Comments

  • SamBo
    SamBo over 4 years

    I've seen some solutions, none of which have worked for my issue.

    I have a UIButton created by simply drag/dropping into the UIViewController in Storyboard editor.

    The UIButton has an outlet linked to the .h file for the UIViewController associated to that view. It is also Synthesized in the .m file.

    @property (strong, nonatomic) IBOutlet UIButton *answerButton;
    

    I want to change the location of the button during run time like this;

    CGRect btFrame = answerButton.frame;
    btFrame.origin.x = xOne;
    btFrame.origin.y = yOne;
    answerButton.frame = btFrame;
    

    However whenever I try this, the button refuses to move.

    All other editing functions (like setTitle etc) are functional, but for some reason the frame won't move how I want it to.

  • Paramasivan Samuttiram
    Paramasivan Samuttiram over 11 years
    Did you NSLog xOne, yOne and check what it is?