SamBo
SamBo

Reputation: 551

How to move UIButton programmatically. Objective-C Xcode

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.

Upvotes: 11

Views: 23245

Answers (3)

Muhammad Ibrahim
Muhammad Ibrahim

Reputation: 1953

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

Upvotes: 19

RKY
RKY

Reputation: 266

.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.

Upvotes: 7

Paramasivan Samuttiram
Paramasivan Samuttiram

Reputation: 3738

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;

Upvotes: 4

Related Questions