【问题标题】:Using both interface builder and code to set autoresizingMask使用界面生成器和代码来设置 autoresizingMask
【发布时间】:2013-11-09 10:28:31
【问题描述】:

我正在阅读一本书,其中一个挑战是以编程方式设置 autoresizingMask。 唯一的问题是我无法检查我的代码是否正确,因为似乎 setAutoresizingMask: 被我在 IB 中设置的内容覆盖了。

所以实际上有两个问题:

1) 有没有办法在 IB 中关闭 autoresizingMask?我删除了 IB 中的所有设置,而不是代码接管,似乎 Xcode 将其解释为 autoresizingMask 设置为默认值。

2) 我的代码是否正确?所以这就是我所做的。

在视图控制器文件中...

@property (nonatomic) IBOutlet UISlider *slider;

然后我在 IB 中建立了从文件所有者到水平滑块的连接,并提到了“滑块”。 在应用程序委托文件中,我将 viewController 设置为 rootViewController。

[viewController.slider setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin];

当我模拟和改变方向时,滑块的宽度并没有改变。

谢谢大家!

** 实际上,我的代码似乎有点错误...... NSLogging autoresizingMask 在设置代码后立即返回 0...... 似乎无法弄清楚出了什么问题......

【问题讨论】:

  • 实际上问题似乎在于我试图从 AppDelegate 文件中访问 viewController 的属性滑块。这是不允许的吗?我不知道。当我将此 setAuto.. 方法放入 -viewDidLoad 时,它工作正常...

标签: interface-builder autoresizingmask


【解决方案1】:

您使用的是过时的教程。我们现在使用NSAutolayoutConstraints (adoption guide)。弄清楚如何使用它会更好。

如果您确实想使用setAutoresizingMask:,请先在您的笔尖中关闭自动布局,或者在您的视图中将translatesAutoresizingMaskIntoConstraints 设置为NO。

【讨论】:

  • 嗯.. 我会调查的。谢谢顺便说一句。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多