0

以下のデリゲート割り当てがコメント化されない限り、UIButtonのターゲットアクションは呼び出されませんが、カスタム描画が失われます。私は何が欠けていますか?

- (void)createLayerForPaletteAtIndex:(int)paletteIndex onButton:(UIButton *)button
{
    self.colorPaletteLayer            = button.layer;
    self.colorPaletteLayer.delegate   = self; // Must implement drawLayer:inContext
    NSString *stringForIndex          = [NSString stringWithFormat:@"%d",paletteIndex];
    self.colorPaletteLayer.name       = stringForIndex;
    button.clearsContextBeforeDrawing = YES;
    button.layer.opaque               = YES;
    [self.colorPaletteLayer setNeedsDisplay]; // Calls drawLayer:inContext
}
4

1 に答える 1

1

ボタンのレイヤーを乗っ取っています。あなたはそれをすべきではありません。UIKitはあなたがそうすることを期待していません。サブレイヤーを作成して、ボタンのレイヤーに追加する必要があります。

于 2012-10-13T16:00:04.707 に答える