2010-03-26 77 views

回答

57
[myView setContentMode:UIViewContentModeRedraw]; 

可以在IB設置這個問題,以及(即,設置模式爲 「重繪」)

+1

這是首選的方法。 – yuji 2012-02-08 10:37:17

+0

請參閱下面原始作者的回覆。 setNeedsDisplay確實是正確的方法調用。 – 2014-03-13 10:23:26

+3

''setNeedsDisplay:'當你想以編程方式觸發重繪時使用。當你想要改變方向時觸發重繪,那麼'setContentMode:'就是票據。 – wcochran 2014-06-24 16:46:05

8

這是一個與完全不同的東西有關的錯誤。 setNeedsDisplay的確會導致drawRect被調用。

+0

是的'setNeedsDisplay:'會觸發重繪,但需要程序員明確調用它。 'setContentMode:'將自動觸發一次方向改變的重繪。 – wcochran 2014-06-24 16:48:15

0

回答這個和有關視圖旋轉/ drawRect中funkiness其他94000個similiar問題,

-(id)initWithFrame:(CGRect)frame 
{ 
    if(self=[super initWithFrame:frame]) { 
     self.autoresizesSubviews=YES; 
     self.autoresizingMask=UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; 
    } 
    return self; 
}