実装したUIControl
サブクラスがありdrawRect
ます。drawRect
を使用してメソッド内に長方形を描画しようとしていUIBezierPath
ます。すべての適切なメソッドが呼び出され、null はなく、アプリは問題なく実行されます。問題は、フレームだけが描画されることです。つまり、黒いのでフレームの領域は見えますが、フレームに描かれたものは何も見えません。
クラスをインスタンス化するために私がやっていることは次のとおりです。
ZHButton *button =
[[ZHButton alloc] initWithFrame:CGRectMake(100, 200, 100, 50)];
button.buttonType = NSSelectorFromString(LEFT_ROUNDED_CORNER_BUTTON);
[self.view addSubview:button];
以下は、セレクターを使用してさまざまなメソッドを呼び出す drawRect: メソッドです。
- (void)drawRect:(CGRect)rect {
UIBezierPath *button = [self performSelector:self.buttonType withObject:nil];
[[UIColor orangeColor] setFill];
[button fill];
}
- (UIBezierPath *)drawButtonWithLeftCornersRounded {
return [UIBezierPath bezierPathWithRoundedRect:self.frame
byRoundingCorners:UIRectCornerTopLeft |
UIRectCornerBottomLeft
cornerRadii:buttonRadii];
}
すべて正常に動作しているように見えますが、UIBezierPath
描画されません。また、セレクターを使用することがこれを行うための最良の方法であるかどうかもわかりません。これで何が起こっているか知っている人はいますか?