如何通过代码而不是故事板更改 UIButton 的大小和位置

How to change a UIButton size and position through code not storyboard

我一直在尝试通过代码更改情节提要场景中按钮的大小,但每次加载场景时按钮大小都没有改变。我试过在加载视图时更改按钮的框架大小,我也尝试过通过 CGRect 更改框架,其中 none 似乎有效。例如:

clickerbutton.frame = CGRect(x: 100, y: 100, width: 1000, height: 1000)

 clickerbutton.frame.size = CGSize(width: 100, height: 100)

以编程方式布局按钮:

为按钮的每个约束添加 IBOutlets 并在代码中更改它们。

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *myButtonTopSpaceConstraint;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *myButtonLeadingSpaceConstraint;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *myButtonWidthConstraint;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *myButtonHeightConstraint;

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    self.myButtonLeadingSpaceConstraint.constant = 10;
    self.myButtonTopSpaceConstraint.constant =  20;
    self.myButtonWidthConstraint.constant = 200;
    self.myButtonHeightConstraint.constant = 70;

}

使用以下GitHub link下载示例项目:

https://github.com/k-sathireddy/ButtonCustomLayout

如果你想不受约束:

以编程方式创建按钮,然后根据需要更改框架。

确保您没有使用 AutoLayout,因为使用 autoLayout 将不允许您修改按钮大小

尝试使用:-

 let dummyBtn : UIButton = UIButton() 

  override func viewDidLoad() {

    super.viewDidLoad()
    dummyBtn.frame = CGRect(x: 100, y: 100, width: 200, height: 150)
    dummyBtn.layer.backgroundColor = UIColor.blackColor().CGColor
    self.view.addSubview(dummyBtn)
    print(dummyBtn.frame)

}

func someFunction(){
  dummyBtn.frame = CGRectMake(x: 10, y: 10, width: 1000, height: 1000)
     }