代码之家  ›  专栏  ›  技术社区  ›  Greg Maletic

创建自定义uiview时出现问题

  •  1
  • Greg Maletic  · 技术社区  · 15 年前

    我正在尝试创建自己的uiview子类。我把它放到了接口生成器的视图中,方法是拖出一个uiview,然后在class identity字段中指定我的子类的名称。但是我的uiview没有绘制自己。

    这里——在一个简化的示例中——是我的uiview子类中的代码:

    - (id)initWithCoder:(NSCoder *)aDecoder
    {
        if (self = [super initWithCoder:aDecoder])
        {
            UILabel* label = [[[UILabel alloc] initWithFrame:self.frame] autorelease];
            label.text = @"Hello.";
            label.textColor = [UIColor whiteColor];
            [self addSubview:label];        
        }
    
        return self;
    }
    

    我看到过重写drawrect:的引用,但老实说,我不知道在该方法中会做什么。我肯定我做了一些明显错误的事情,但我不知道是什么。

    任何建议都将不胜感激!

    谢谢。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Thomas Müller    15 年前

    试用使用 self.bounds 而不是 self.frame :

    UILabel* label = [[[UILabel alloc] initWithFrame:self.bounds] autorelease];
    

    您视图的框架可能不在原点0 0,这意味着标签将结束在视图的可见区域之外。