8

UIKitうまくいけば、比較的新しいコントロールの簡単な質問

ポートレートモードでの境界の正確な高さであるセルの単一の行を持つがありUICollectionViewますviewLayoutUICollectionView

したがって、iPadを横向きモードに切り替えると、その行は画面自体よりも高くなり、その時点でレイアウトは(ほとんど)静かに失敗し、行が境界よりも高いと文句を言います。

特にviewLayoutの回転への応答に関連する場合、viewLayoutの特性を操作するための理想的な方法は何ViewControllerですか?

4

1 に答える 1

3

私は同様の問題に取り組んでいます。

現在、私の UICollectionViewController には UICollectionViewFlowLayout の 2 つのインスタンス変数があり、それぞれにポートレートまたはランドスケープの適切なインセットがあります。

ローテーションでは、私はこれを行います:

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
                               duration:(NSTimeInterval)duration{

    if (UIDeviceOrientationIsPortrait(toInterfaceOrientation)) {
        [_itemCollection setCollectionViewLayout:_portraitLayout];
        [_itemCollection reloadData];
    } else {
        [_itemCollection setCollectionViewLayout:_landscapeLayout];
        [_itemCollection reloadData];
    }
}

私が抱えている唯一の問題は、setCollectionViewLayout の exc_bad_access でランダムにクラッシュすることです。

上記のようなものがあなたのために働くかもしれません。これが正しい方法であるかどうかはわかりません。UICollectionViews を使い始めたのはつい最近のことです。

于 2012-09-27T22:34:41.507 に答える