这是啥意思? 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]的主要内容,如果未能解决你的问题,请参考以下文章