10

setframeをオーバーライドして、ラベルも中央に配置するようにしたかったのですが、次のようにしました。

- (void)setFrame:(CGRect)frame 
{
    [self setFrame:frame};
    self.center = CGPointMake(self.superview.center.x, kNavigationBarFrameHeight/2);
}

無限ループになります。では、どうすればこれを行うことができますか?

4

1 に答える 1

25

に電話する必要があります[super setFrame:frame]

setFrameそれはあなた自身のものではなく、UILabelの実装を呼び出します。それが無限ループの原因です。

于 2012-04-24T18:49:33.227 に答える