切换方向导致UIButton重绘

时间:2011-07-29 14:09:31

标签: iphone uibutton three20

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 个答案:

答案 0 :(得分:1)

这是在drawRect或类似的东西中调用的吗?每次调用绘图方法时,它看起来好像正在创建按钮的新实例。尝试将加号按钮作为单元格的实例变量,并在init方法中初始化它。然后,您可以在绘图方法中设置框架和其他属性,同时仅使用按钮的一个实例。然后,您可以在dealloc中释放按钮。

tl; dr:看起来好像是在绘图方法中添加按钮的多个实例,例如。 drawRect:或layoutSubviews。

答案 1 :(得分:0)

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];
相关问题