Переключение ориентаций вызывает перерисовку UIButton - PullRequest
0 голосов
/ 29 июля 2011

http://i56.tinypic.com/33f6mmf.png

Я переключаюсь в альбомную ориентацию, и она перерисовывает UIButton.вот код кнопки.

plusButton = [[[UIButton alloc] initWithFrame:CGRectMake(bounds.size.width - 60.0f,       28.0f, 45.0f,90.0f)] autorelease ];
[plusButton setImage:TTIMAGE(@"bundle://morebutton.png")
            forState:UIControlStateNormal];
[plusButton showsTouchWhenHighlighted];
[plusButton addTarget:self action:@selector(plusButtonDidPress:)
 forControlEvents:UIControlEventTouchUpInside];
[self addSubview:plusButton];

Это TTMessageitemcell (THREE20)

Любые предложения будут оценены.спасибо.

Ответы [ 2 ]

1 голос
/ 29 июля 2011

Это вызывается в drawRect или что-то подобное? Похоже, что он создает новый экземпляр кнопки каждый раз, когда вызывается метод рисования. Попробуйте сделать кнопку «плюс» переменной экземпляра вашей ячейки и инициализировать ее в методе init. Затем вы можете установить рамку и другие свойства в методе рисования, используя только один экземпляр кнопки. Затем вы можете отпустить кнопку в dealloc.

tl; dr: выглядит так, как будто вы добавляете несколько экземпляров кнопки в метод рисования, например. drawRect: или layoutSubviews.

Тим

0 голосов
/ 29 июля 2011
plusButton = [[[UIButton alloc] initWithFrame:CGRectMake(bounds.size.width - 60.0f,       28.0f, 45.0f,90.0f)] autorelease ];

[plusButton setAutoresizingMask:UIViewAutoresizingFlexibleRightMargin|UIViewAutoresizingFlexibleTopMargin];


[plusButton setImage:TTIMAGE(@"bundle://morebutton.png")
            forState:UIControlStateNormal];
[plusButton showsTouchWhenHighlighted];
[plusButton addTarget:self action:@selector(plusButtonDidPress:)
     forControlEvents:UIControlEventTouchUpInside];
[self addSubview:plusButton];
...