0

次のコードがあります

// Breakpoint here
[label removeFromSuperview];
[label release];
label = nil;

デバッガー出力でそれをステップスルーする

(gdb) po [self subviews]
<NSCFArray 0x476af70>(
<UIImageView: 0x47581a0; frame = (0 0; 232 81); opaque = NO; autoresize = W+H; userInteractionEnabled = NO; layer = <CALayer: 0x476b3d0>>,
<UILabel: 0x4758870; frame = (15 11; 202 56); text = 'Test'; clipsToBounds = YES; autoresize = W+H; userInteractionEnabled = NO; layer = <CALayer: 0x476b590>>
)

(gdb) po label
<UILabel: 0x4758870; frame = (15 11; 202 56); text = 'Test'; clipsToBounds = YES; autoresize = W+H; userInteractionEnabled = NO; layer = <CALayer: 0x476b590>>
(gdb) n
(gdb) n
(gdb) n
(gdb) po [self subviews]
<NSCFArray 0x478c4e0>(
<UIImageView: 0x47581a0; frame = (0 0; 232 81); opaque = NO; autoresize = W+H; userInteractionEnabled = NO; layer = <CALayer: 0x476b3d0>>
)

それでもまだ見える、消えない。[self setNeedsDisplay]直後でも構いません。

他の誰かがこれに出くわしましたか? SDK のバグですか、それとも何か不足していますか?

4

1 に答える 1

0

他の場所にある私のコードのバグが原因で、複数の同一のビューが互いに重なり合って作成され、この動作につながっていたことが判明しました。

于 2010-04-25T03:36:11.940 に答える