UIView AutoresizingMask 用于将按钮固定到右下角

Posted

技术标签:

【中文标题】UIView AutoresizingMask 用于将按钮固定到右下角【英文标题】:UIViewAutoresizingMask for pinning a button to bottom right corner 【发布时间】:2013-01-08 10:24:50 【问题描述】:

我想将 UIButton 固定到 iPhone 屏幕的右下角。 3.5英寸和4英寸屏幕。

这是我写的代码。但在 iPhone4 和 iPhone5 中,按钮始终保持在 x=265,y=361 上。

UIImage* plusImage = [UIImage imageNamed:@"Plus.png"];
UIButton* plusButton = [UIButton buttonWithType:UIButtonTypeCustom];
[plusButton setImage:plusImage forState:UIControlStateNormal];
[plusButton setFrame:CGRectMake(265, 361, plusImage.size.width, plusImage.size.height)];
plusButton.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin;
[self.view addSubview:plusButton];

我已将自动调整大小的蒙版设置为采用灵活的顶部和左侧边距。但它不起作用。我错过了什么?请帮忙。

【问题讨论】:

你传递了静态 x 和 y 值?所以它在你经过时需要框架。 U 必须通过相对的 x & y。 【参考方案1】:
UIImage* plusImage = [UIImage imageNamed:@"Plus.png"];
UIButton* plusButton = [UIButton buttonWithType:UIButtonTypeCustom];
[plusButton setImage:plusImage forState:UIControlStateNormal];
CGSize viewSize = self.view.frame.size;
[plusButton setFrame:CGRectMake(viewSize.width - plusImageSize.width, viewSize.height - plusImageSize.height, plusImage.size.width, plusImage.size.height)];
plusButton.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin;
[self.view addSubview:plusButton];

试试吧。

【讨论】:

感谢您的代码。我看到您已经手动计算了原点 x 和 y。那么 Autoresizingmasks 有什么意义呢? 自动调整掩码的目的是通知视图一旦调整其父视图的大小,它应该在哪里。因为您是在自动创建视图并调整大小(以适应 Retina 3.5" 或 Retina 4")之后添加视图,所以它实际上并没有被使用。我把它放在那里是因为它是正确的。【参考方案2】:

试试plusButton.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin

【讨论】:

如果您想使用 autoResizingMask,这可能会对您有所帮助。 plusButton.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin【参考方案3】:

我已经使用了所有这些掩码,如下所示

plusButton.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin;

检查它是否对我有用。

【讨论】:

调整大小标志用于保持视图居中。

以上是关于UIView AutoresizingMask 用于将按钮固定到右下角的主要内容,如果未能解决你的问题,请参考以下文章

关于UIView的autoresizingMask属性的研究转

UIView 和 AutoresizingMask 被忽略

ios开发之--关于UIView的autoresizingMask属性的研究

UIView drawRect 未在自动旋转时调用

UIView AutoresizingMask 用于将按钮固定到右下角

Autoresizingmask 无法正常工作