0

我想创建一个UIView 类,您可以使用多个选项对其进行初始化。

我认为问题在于drawRect()方法。是否可以使用某个选项初始化类,例如

[[MyUIView alloc]initWithColor:[UIColor blueColor]]

我读到我不应该在drawRect()没有初始化对象的情况下调用该方法。

那么如何在不手动调用的情况下实现上面的语句呢?

到目前为止我已经尝试过:

我以为我可以初始化 View 然后调用 Method

[MyView changeColorTo:green]

它试图重绘视图但是我无法让它工作。

也许在方法coreGraphics中用圆角矩形绘制(使用某种颜色,应该是可选的)很重要drawRect()

我怎样才能实现我想要的行为?

4

1 回答 1

1

称呼

[self setNeedsDisplayInRect:aCGRect];

调用 drawRect: 为你。

编辑颜色属性:

@interface MyView: UIView

@property (nonatomic, strong) UIColor *drawColor;

@end

@implementation MyView

@synthesize drawColor;

- (id)initWithWhatever
{
    self.drawColor = [UIColor infraRedColor];
    [self setNeedsDisplayInRect:aRect];
}

- (void)drawRect:(CGRect)r
{
    // use self.drawColor
}

@end
于 2012-07-30T21:17:57.887 回答