代码之家  ›  专栏  ›  技术社区  ›  jamesmoschou

从SuperView中删除uitextfield不会使其在屏幕上消失。

  •  0
  • jamesmoschou  · 技术社区  · 14 年前

    我有以下代码

    // 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中的一个bug还是我丢失了一些东西?

    1 回复  |  直到 14 年前
        1
  •  0
  •   jamesmoschou    14 年前

    结果发现我在其他地方的代码中有一个bug导致在彼此之上创建多个相同的视图,从而导致了这种行为。