【问题标题】:Resizing a button in iOS programmatically以编程方式调整iOS中的按钮大小
【发布时间】:2013-06-14 09:22:32
【问题描述】:

我正在使用 XCode 4.6.1 并为 iOS 6 开发。

我在情节提要中添加了一个按钮。我在我的实现文件ViewController.m中创建了一个插座:

    //
    //  ViewController.m
    //

    #import "ViewController.h"

    @interface ViewController ()

    @property (weak, nonatomic) IBOutlet UIButton *b1;

    @end

我尝试将按钮b1 的属性更改如下(在同一文件中:ViewController.m):

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

        self.b1.alpha = 0.5;
        self.b1.frame = CGRectMake(0,0,123,412);
    }

当我在模拟器中运行应用程序时,按钮的alpha 成功设置为0.5。 但是,按钮的位置和大小不会改变。

我尝试了各种方法来实现它。但是似乎没有任何效果。我想知道我做错了什么。我对 Objective C 很陌生。任何帮助将不胜感激。

【问题讨论】:

  • 尝试在 viewDidLayoutSubviews 而不是 viewDidLoad 中设置框架。

标签: ios objective-c uibutton xcode4.6


【解决方案1】:

您可能正在使用自动布局:

使用自动布局时,您无法手动更改插座框架。您有两个选择:您可以禁用自动布局(然后您的代码应该可以工作),或者为您的约束创建出口,然后以编程方式修改约束:

 @property (weak, nonatomic) IBOutlet NSLayoutConstraint *widthConstraint;

然后在你的代码中:

 self.widthConstraint.constant = 123;

等等所有需要修改的约束。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 2017-07-20
    • 2018-07-13
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多