Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/122.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用自动布局时更改UIButton的大小?_Ios_Uiview_Uibutton_Xib_Autolayout - Fatal编程技术网

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

Ios 使用自动布局时更改UIButton的大小?,ios,uiview,uibutton,xib,autolayout,Ios,Uiview,Uibutton,Xib,Autolayout,我对ios很陌生。我正在从事一个项目,该项目将在整个应用程序中频繁使用某个UIView类。这个类只是一个图像,它用背景色做一些透明的东西。到目前为止,这一切都很好。此类有时作为单独的UIView存在,有时作为按钮子视图存在 当我将此UIView作为子视图添加到UIButton时,UIView的完整内容将以完整大小显示,但按钮的可单击区域将保持在xib中定义的大小,除非禁用“使用自动布局”(即使我手动尝试设置按钮的框架) 我想在xib上放置一个UIButton作为占位符,然后根据UIView初始化

我对ios很陌生。我正在从事一个项目,该项目将在整个应用程序中频繁使用某个UIView类。这个类只是一个图像,它用背景色做一些透明的东西。到目前为止,这一切都很好。此类有时作为单独的UIView存在,有时作为按钮子视图存在

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

我想在xib上放置一个UIButton作为占位符,然后根据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之前和之后打印按钮信息时,帧的大小保持不变

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

  • 在“自动布局”下,视图在
    viewDidLoad
    处没有框架。在
    视图中尝试您的代码将显示:
    viewdilayoutsubview
  • 在“自动布局”下,不设置帧。您可以改为编辑约束。设置框架将一直有效,直到下一个布局过程,此时您的布局将恢复为约束所描述的布局
  • 要调整按钮的大小以适应子视图,可以尝试以下操作(在可视化格式语言中):
    -[theView]-
    ,但这取决于xib中的约束条件
  • 在“自动布局”下,视图在
    viewDidLoad
    处没有框架。在
    视图中尝试您的代码将显示:
    viewdilayoutsubview
  • 在“自动布局”下,不设置帧。您可以改为编辑约束。设置框架将一直有效,直到下一个布局过程,此时您的布局将恢复为约束所描述的布局
  • 要调整按钮的大小以适应子视图,可以尝试以下操作(在可视化格式语言中):
    -[theView]-
    ,但这取决于xib中的约束条件
    谢谢你的信息,非常有用的建议!我试着使用了
    viewdilayoutsubviews
    ,效果很好。谢谢你提供的信息,非常有用的建议!我试着使用
    viewdilayoutsubviews
    ,结果一切正常。