微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CGRectZero和sizeToFit

如何解决CGRectZero和sizeToFit

| 我有时看到的代码看起来像这样:
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文档时,我不太确定“调整并移动接收者视图的大小,以便仅包围其子视图”是什么意思。谢谢。     

解决方法

        在UIView中,
sizeToFit
用视图的当前大小调用
sizeThatFits:
。 implementation2ѭ的默认实现返回视图的当前值,换句话说,在大多数情况下,它几乎不执行任何操作(UIView的某些子类覆盖了此方法,因此它返回的内容更有用,例如:UILabel) 换句话说,“ 4”是一个“模板方法”,用于扩展类的功能。它的主要目的是被覆盖。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。