Uipicker组件拆分以最大限度地减少大数据集的滚动

时间:2011-08-13 06:27:59

标签: nsarray nsdictionary uipicker

我有以下代码从我的.plist中读取数据,以便在UIPicker中使用。这一切都运行正常,但现在我想拆分我的选择器,因为组件轮中的数据太大意味着滚动太多。

选择器的组件0的值为a1 a2 a3 a4 a5等到z26。

如何将此组件拆分为2,以便组件0为a到z,组件1根据需要填充字典项1,2,3:

NSString *path = [[NSBundle mainBundle] pathForResource:@"Picker" ofType:@"plist"];

pickerData = [[NSDictionary alloc]initWithContentsOfFile:path];

NSArray *sortArray = [[[NSArray alloc] initWithArray:[pickerData allKeys]]autorelease];

mainKeys = [[NSArray alloc]  initWithArray:[sortArray sortedArrayUsingSelector:@selector(localizedStandardCompare:)]];

currentValues = [[NSMutableArray alloc] initWithArray:[pickerData objectForKey:[mainKeys objectAtIndex:component0Row]]];

我不知道如何构造代码或plist来实现这一目标。有人可以提醒,谢谢。

以下是plist的摘录:

<dict>
    <key>a10</key>
    <array>
        <dict>
            <key>Lower Value</key>
            <integer>-310</integer>
            <key>Upper Value</key>
            <integer>-270</integer>
        </dict>
        <dict>
            <key>Lower Value</key>
            <integer>-318</integer>
            <key>Upper Value</key>
            <integer>-270</integer>
        </dict>
        <dict>
            <key>Lower Value</key>
            <integer>-338</integer>
            <key>Upper Value</key>
            <integer>-290</integer>
        </dict>
        <dict>
            <key>Lower Value</key>
            <integer>-360</integer>
            <key>Upper Value</key>
            <integer>-290</integer>
        </dict>
        <dict>
            <key>Lower Value</key>
            <integer>-620</integer>
            <key>Upper Value</key>
            <integer>-460</integer>
        </dict>
        <dict>
            <key>Lower Value</key>
            <integer>-680</integer>
            <key>Upper Value</key>
            <integer>-520</integer>
        </dict>
    </array>
    <key>a11</key>
    <array>
        <dict>
            <key>Lower Value</key>
            <integer>-330</integer>
            <key>Upper Value</key>
            <integer>-270</integer>
        </dict>
        <dict>
            <key>Lower Value</key>
            <integer>-345</integer>
            <key>Upper Value</key>
            <integer>-270</integer>
        </dict>

etc,etc

1 个答案:

答案 0 :(得分:0)

此链接将带您进入此问题的解决方案

请注意! plist结构需要改变

NSArray setup and concept for datasource for uipicker