Objective c UIView frame.size.width是否等于零?

Objective c UIView frame.size.width是否等于零?,objective-c,cocoa-touch,uiview,subclass,Objective C,Cocoa Touch,Uiview,Subclass,我创建了UIView的一个子类,并在该子类中尝试访问views的width属性。我试着得到这样的宽度 CGFloat width = self.frame.size.width; NSLog(@"Width: %f", width); 但是由于某种原因,我得到的宽度等于0.000000 当我创建视图时,我正在使用CGRectMake()函数设置frame属性,并且视图显示正确,那么为什么width属性会返回零?请尝试CGFloat width=self.view.frame.size.widt

我创建了UIView的一个子类,并在该子类中尝试访问views的width属性。我试着得到这样的宽度

CGFloat width = self.frame.size.width;
NSLog(@"Width: %f", width);
但是由于某种原因,我得到的宽度等于0.000000


当我创建视图时,我正在使用CGRectMake()函数设置frame属性,并且视图显示正确,那么为什么width属性会返回零?

请尝试
CGFloat width=self.view.frame.size.width

如果您将UIPickerView子类化,则无论您设置的帧是什么,宽度和高度都是320216(用于纵向)。

确保代码中的
self
指向选择器。

您是否尝试过@cgossain

CGFloat width = CGRectGetWidth(self.view.bounds);
CGFloat height = CGRectGetHeight(self.view.bounds);

看看UIPicker相关问题的顺序,我很想问一下这项任务背后的意图。原因是,你想要达到的可能是拥有更好的生活。你检查过InputView和InputAccessoryView的使用情况了吗?你确定它们不会有帮助吗?@cgossan你可能需要包含更多的代码,让我们知道发生了什么。此外,您是否已调试以确定帧设置代码是否被调用,并使用您认为应该使用的值。结果表明,在我请求UIView的帧时,帧尚未设置。我在调用custom-init方法中的行,我应该注意到这一点。无论如何,我感谢所有的帮助。@cgossain子类UIPickerView,可能它不是ViewController,而是一个View。由于提供的信息有限,@WrightsCS可能已经猜到,向下投票很困难,实际实现是一个ViewController而不是View(这似乎是正确的实现)。请编辑你的答案。我相信否决一个技术上不正确的答案是正确的。如果答案是正确的,那么投票可以改变。作者还可以选择删除答案。我问错了。我实际上是uiview的子类,里面有一个picker视图。我希望视图的width属性将选择器的width属性设置为相同的值。@cgossain如果解决方案对您有帮助,请选择答案。你也检查过评论了吗?您确定需要inputView和accessoryView以外的行为吗?很遗憾,这没有帮助。对于宽度,我仍然得到零。我试图在自定义init方法中获得宽度值,而帧尚未设置。我现在正在使用setFrame:setter,它正在工作。