私はいくつかのUISegmentedControlを異なるView Controllerに持っています。 iPadでは、デバイスの向きが変わったときに、これらのセグメントを再配置して、その下のUITableViewと整列させます。私が見ている問題は、サイズ変更マスクがUISegmentedControlのために設定されていて、コードがなくても、右の幅を満たすようにサイズが変更されます。セグメントの幅を変更しようとすると、終わりまで、または彼らは大きすぎて行き過ぎるでしょう。SplitViewのUISegmentedControlの幅
これは、コントロールが分割ビューにある場合にのみ発生するようです。
- (void)orientationChanged:(NSNotification *)notification {
[self setHeaderWidths];
}
-(void)setHeaderWidths{
int totalWidth = self.segSorter.bounds.size.width;
int areaWidth = 100,
priceWidth = 100;
int padding = 35;
[self.segSorter setWidth:totalWidth -padding- areaWidth-priceWidth forSegmentAtIndex:0];
[self.segSorter setWidth:areaWidth forSegmentAtIndex:1];
[self.segSorter setWidth:priceWidth forSegmentAtIndex:2];
}
は当初、私はそれがアニメーションによって引き起こされるかもしれないと思ったが、回転アニメーションが完全に終了しているようにも遅延を追加すると幅は効果がありません。 splitview内のコントロールは、偽の幅などを与えられていますか?
UIは実際にストーリーボードから読み込まれるため、プログラムで再作成するのは面倒な解決策のようです。 – Echilon