这是啥意思? initWithFrame:CGRectZero]

Posted

技术标签:

【中文标题】这是啥意思? initWithFrame:CGRectZero]【英文标题】:What does this mean? initWithFrame:CGRectZero]这是什么意思? initWithFrame:CGRectZero] 【发布时间】:2011-08-27 15:04:13 【问题描述】:

我像这样在 cellForRowAtIndexPath 中创建了开关。

UISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectZero];

CGRectZero 等价于 CGRectMake(0,0,0,0)。 但是,开关用正常的尺寸可以看到。 我没有指定实际尺寸。 请向我解释上面的代码是如何工作的。

【问题讨论】:

【参考方案1】:

UISwitch 不可自定义,这也适用于大小。

UISwitch 覆盖initWithFrame: 并强制使用适合控件的大小。给定矩形的大小分量被忽略。

【讨论】:

其实 UISwitch 会覆盖 sizeThatFits: 但效果是一样的。【参考方案2】:

任何 UIView 对象都可以通过实现 UIView 的sizeThatFits: 方法来覆盖帧大小。事实上UIView class reference 说:

UISwitch 对象返回一个固定大小的值,表示切换视图的标准大小

【讨论】:

以上是关于这是啥意思? initWithFrame:CGRectZero]的主要内容,如果未能解决你的问题,请参考以下文章

在UIView中画线

简单的 UIView drawRect 没有被调用

这是啥意思 x86 汇编代码是啥意思? [复制]

这是啥意思? [C#]

这是啥意思?

这是啥意思?