繁体   English   中英

使用自动布局时更改UIButton的大小?

[英]Changing size of UIButton while using Autolayout?

我是ios的新手。 我正在一个项目中,该项目将在整个应用程序中频繁使用某个UIView类。 这个类只是一个图像,它使用背景色来做一些透明的事情。 到目前为止,这个工作正常。 此类有时作为一个单独的UIView存在,有时作为一个按钮子视图存在。

当我将此UIView作为子视图添加到UIButton时,UIView的全部内容以完整大小显示,但是按钮的可单击区域保持在xib中定义的大小,除非关闭了“使用自动布局”(即使我手动尝试设置按钮的框架。)

我想将UIButton放置在xib上作为占位符,然后稍后根据初始化时使用的UIView的覆盖图像的大小来定义其大小/可单击区域。

这是否可能,或者我是否误解了xib文件/自动布局的用法?

在ViewDidLoad下,我有...

- (void)viewDidLoad{

    [theButton addSubview:_theView];
    CGRect buttonFrame = theButton.frame;
    buttonFrame.size = CGSizeMake(_theView.getSize.width,_theView.getSize.height);
    [theButton setFrame:buttonFrame];
}

但是,当我尝试调用setFrame之前和之后打印按钮信息时,框架保持相同的大小。

(请注意,“ _ theView.getSize”是我添加的)

  1. 在“自动布局”下,视图在viewDidLoad处没有框架。 viewWillAppear:viewDidLayoutSubviews尝试您的代码。
  2. 在“自动布局”下,您无需设置框架。 您可以编辑约束。 设置框架将一直有效,直到下一次布局通过,此时布局将恢复为约束所描述的布局。
  3. 要调整按钮大小以适合子视图,可以尝试以下操作(以视觉格式的语言): |-[theView]-| 但这取决于您的xib有哪些约束条件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM