我有时会看到类似下面这样的代码:
NSArray *segmentedControl = [NSArray arrayWithObjects:@"First", @"Second", @"Third", nil];
UISegmentedControl *ctrl = [[UISegmentedControl alloc] initWithItems:segmentedControl];
ctrl.segmentedControlStyle = UISegmentedControlStyleBar;
ctrl.selectedSegmentIndex = 0;
ctrl.frame = CGRectZero;
[ctrl sizeToFit];
self.navigationItem.titleView = ctrl;
[ctrl release];对于CGRectZero和sizeToFit,为什么要这样做?您是否希望对象位于0,0原点,然后通过将框架的宽度和高度设置为0,但调用sizeToFit来填充视图?查看UIView文档时,我不太确定“调整并移动接收器视图,使其仅包含其子视图”是什么意思。谢谢。
发布于 2012-01-30 05:05:06
在UIView中,sizeToFit使用视图的当前大小调用sizeThatFits:。
sizeThatFits:的默认实现返回视图的当前值,换句话说,它在大多数情况下几乎不做任何事情( UIView的一些子类覆盖了此方法,因此它返回更有用的值,例如: UILabel)
换句话说,sizeThatFits它是一个“模板方法”,一个用来扩展类功能的方法。它的主要目的是被覆盖。
https://stackoverflow.com/questions/6433170
复制相似问题