Ios 如何获取自定义UIView';s原点X?

Ios 如何获取自定义UIView';s原点X?,ios,uiview,uikit,uitextfield,Ios,Uiview,Uikit,Uitextfield,我创建了一个自定义的UITextfield,并在UIToolbar中使用它 然后在自定义UITextField的initWithFrame中[超级initWithFrame:frame] 我尝试在窗口中获取自定义UITextField的原点X。但是我试过了 self.frame.origin.x self.bounds.origin.x self.superview.frame.origin.x, self.superview.bounds.origin.x, CGPoint point = [

我创建了一个自定义的
UITextfield
,并在
UIToolbar
中使用它

然后在自定义
UITextField
initWithFrame
[超级initWithFrame:frame]

我尝试在窗口中获取自定义
UITextField
的原点X。但是我试过了

self.frame.origin.x
self.bounds.origin.x
self.superview.frame.origin.x,
self.superview.bounds.origin.x,
CGPoint point = [self.superview convertPoint:self.frame.origin toView:nil]; return point.x;
CGPoint point = [self.superview convertPoint:self.frame.origin fromView:self]; return point.x;
CGPoint point = [self convertPoint:CGPointZero toView:[UIApplication sharedApplication].keyWindow]; return point.x
它们都返回0.0

<> >但是在窗口中,<代码> UITExtField>代码>实际上是在<>代码> uITooBar < /C>中的某个地方。如何获取自定义
UITextField
的原点x

我的代码:

self = [super initWithFrame:frame];
if (self) {
    originalHeight = self.bounds.size.height;
    originalWidth = self.bounds.size.width;

    [self createTableView];

}
return self;

- (void)createTableView
{
    self.tableView = [[UITableView alloc] init];

    LogDebug(@"Origin x = %f", self.frame.origin.x);
    self.tableView.frame = CGRectMake(self.frame.origin.x, originalHeight + 18, originalWidth, 320);

}
编辑:

我想出了解决这个问题的办法,但仍然不知道这个问题背后的原因,但如果有人能扩展这个话题,我将不胜感激

在上面的代码中,我尝试在初始化期间打印出自定义UIView的原始X。应用程序似乎不知道我的自定义UIView的原始点信息

我想在这一行之后

self = [super initWithFrame:frame]
我可以获得自定义UIView的原始点信息,但我错了

我还发现

self.frame.origin.x
具有相同的效果

[[UIApplication sharedApplication].keyWindow convertPoint:self.bounds.origin fromView:self].x;
我读过这个博客:


建议在初始化过程中不要使用自我消息。我同意博客中的观点,并认为我遇到的问题是,当self仍然处于不一致状态时,我试图在init中传递self。我将
CGRectMake
方法的
self.tableView
移到init之外,因为self的框架和边界已经设置好,可以使用了。你能发布整个initWithFrame:method吗?