0

次のデザインで UIPickerView が必要です。

http://dl.dropbox.com/u/53051470/Screen%20shot%202012-04-18%20at%2012.02.36%20PM.png (新しいユーザーとして申し訳ありませんが、ここに画像を貼り付けることができません)

同じトピックに関する他の質問も読み、pickerView:viewForRow:forComponent:reusingView: メソッドも実装しようとしましたが、実際の結果は得られません。

要件は、選択した値がチェックマーク付きの緑色のバーと白色で表示されるようにする必要があります。さらに、ユーザーがピッカーのスクロールを開始すると、緑色のバーの内側に入った値は緑色に変わり、緑色のバーから出る値は黒に変わります。

なにか提案を?

敬具;

4

2 に答える 2

0

https://github.com/alexleutgoeb/ALPickerViewを使用して、ピッカービューの前に他のビューを追加せずにUIPickerView複数選択動作

改善は大歓迎です!

于 2012-04-18T11:17:04.240 に答える
0

メソッドを使用する必要があります

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view

ハイライトする行を決定します

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{   
        // i use a UILabel instead of your **custom UIView** , you may add a tick in you custom view

        UILabel *testRow = view?(UILabel *)view:[[[UILabel alloc] initWithFrame:CGRectMake(0,0, 140, 40)] autorelease];
        testRow.font = [UIFont fontWithName:[testArray objectAtIndex:row] size:16];
        testRow.text = [fontsArray objectAtIndex:row];
        testRow.backgroundColor = [UIColor clearColor];

        if ( row == selectedRow )
        {
            testRow.backgroundColor = [UIColor greenColor];
        }

        return testRow;
}

showsSelectionIndicator を NO に設定することを忘れないでください

pickView.showsSelectionIndicator = NO;
于 2012-04-18T08:07:24.527 に答える