2
我得到了UIView的一個子類,在其中使用drawInRect:withFont:lineBreakMode:alignment:
方法繪製NSString對象。iPhone - UIView方向更改
不幸的是,當我改變設備的方向時,比如說從縱向模式轉換爲橫向模式,文本不會被正確地重繪,但會根據我的意圖進行縮放和扭曲。
我該如何解決這個問題?
我得到了UIView的一個子類,在其中使用drawInRect:withFont:lineBreakMode:alignment:
方法繪製NSString對象。iPhone - UIView方向更改
不幸的是,當我改變設備的方向時,比如說從縱向模式轉換爲橫向模式,文本不會被正確地重繪,但會根據我的意圖進行縮放和扭曲。
我該如何解決這個問題?
這是Core Animation動畫過渡的一部分。拍攝您視圖的快照,然後拉伸/移動到新位置。
有很多方法可以解決這個問題。首先,你可以試試這個:
self.contentMode = UIViewContentModeRedraw;
這可能是你所需要的,並會告訴核心動畫重繪的內容,而不是使用快照。如果您仍然有問題,可以嘗試定義拉伸的「可拉伸」區域而不是文字。例如,如果您知道自己的視圖中沒有任何文本的垂直切片,則可以將內容拉伸定義在該小節中,並且任何拉伸只發生在那裏,並希望保持文本不變。
CGFloat stretchStartX = 25.0f;
CGFloat stretchEndX = 30.0f;
/* Content stretch values are from 0.0-1.0, as a percentage of the view bounds */
self.contentStretch = CGRectMake(stretchStartX/self.bounds.size.width,
0.0f,
stretchEndX/self.bounds.size.width,
1.0f);
這使視圖以僅x與被拉伸值25和30