1

内側のピッカー部分の両側にある濃い灰色のフレームの幅と、コンポーネント間のセパレーターの幅を知りたいのですが。これはデフォルト設定になります(たとえば、.xibに表示されるもの)。または、プログラムでそのような値を見つける方法。ありがとうございました

明確にするために、私はそれらの値の「推奨される最小値」が何であるかを探しています。UIPickerViewをポップオーバーに入れていますが、UIPickerViewの幅が320ピクセルより広くなっています(これは.xibが「デフォルト」として提供するものです)。これらの値を知りたいので、ポップオーバーの幅に追加して、UIPickerViewの右側のコンポーネントが途切れないようにします。

4

1 に答える 1

1

Pickerは動的な数のコンポーネントを持つことができるため、これは少し注意が必要です。したがって、幅を見つけるには、コンポーネントの数を考慮する必要があります。これは次のように行うことができます。

        NSInteger n = picker.numberOfComponents;        

        const CGFloat separatorWidth = 8.0f;
        const CGFloat sectionExceedWidth = -2.0f;
        CGFloat totalWidth = picker.bounds.size.width;
        CGFloat panesWidth = totalWidth - separatorWidth * (n - 1);
        for (NSInteger i = 0; i < n; i++) {
            CGFloat sectionWidth = [picker rowSizeForComponent:i].width + sectionExceedWidth;
            panesWidth -= sectionWidth;
        }
        CGFloat leftPaneWidth = ceilf(panesWidth * 0.5f);
        CGFloat rightPaneWidth = panesWidth - leftPaneWidth;
        CGFloat totalHeight = picker.bounds.size.height;
        CGRect totalRect = CGRectMake(0, 0, totalWidth, totalHeight);

左右のペインの幅が見つかり、セパレータのサイズが静的である場合。

これはここから引っ張られました。

于 2012-07-16T17:44:34.140 に答える