なぜこのUIViewレイアウトコードは必要なときに機能しませんか?向きを変更した後にUIViewのサイズを変更するにはどうすればいいですか(コードが機能しないようです)
背景:
- 私は私のUIViewController
- UIViewのクロック背景ImageViewのといくつかのコードを導入した後hourhandのImageViewの
- を持つカスタムを持っているUIViewのカスタムを持っている(下記参照)を試してみます私は立ち往生している向きの変更のために時針のサイズを変更する。
- コードの下、本当に物事を詰め込む - 砂時計手のoutlike境界線は、このコード
で道オフ私が間違ってやっている任意のアイデアである - 私は明らかにいくつかの仮定や誤解がそれのためにあります
// Centre image
self.hourHandImageView.center = self.hourFaceUIImageView.center;
// Resize to cater for either Portrait or Landscape orientation
CGSize currSize = self.hourFaceUIImageView.frame.size;
float newHourHandImageheightWidth = currSize.width < currSize.height ? currSize.width : currSize.height;
CGSize newHourHandViewSize = CGSizeMake(newHourHandImageheightWidth, newHourHandImageheightWidth);
CGRect newRect = self.hourHandImageView.frame;
newRect.size = newHourHandViewSize;
self.hourHandImageView.frame = newRect;
PS:私のカスタムビューへのUIViewController( "didRotateFromInterfaceOrientation" の方法で)によって呼び出され、このように台無しにする...
コード。 「肖像画または風景の向きに対応するためのサイズ変更」コードがなければ、時針は正確に中央に置かれます(私はそれを回すために変形を使用することに注意してください)。私が本当に必要とするのは、向きの変更後に時針を適切にリサイズすることです。ランドスケープモードでは、1時間の背景画像が小さいことに注意してください。
ディメンションの変更が反映されていますか?アンカーポイントが間違った場所に入っていますか? – Ravin
[self.view layoutSubviews]または[self.view setNeedsDisplay]を試しましたか?ビューを更新するにはsetNeedsDisplayを試してください。 –
@Ravin - センターが間違った場所に来ていて、サイズが間違っています – Greg