我的视图中有两个不同的UIPickerView.当我将dataSource和委托设置为通过故事板托管的View时,它们工作得很好,但是当我尝试通过如下所述的代码执行此操作时,它不起作用.
两个选择器都应该有不同的数据来显示(甚至可能是委托的不同行为).因此,我想以编程方式将它们连接到不同的数据源.
我试图创建我自己的类,实现UIPickerViewDataSource-和UIPickerViewDelegate-Protocols,并将该类的对象连接到我的PickerViews,但它不起作用.在运行时抛出异常,terminating with uncaught exception of type NSException说明:
2015-01-09 17:50:05.333 Pet Stats[4953:244338] -[NSConcreteMapTable numberOfComponentsInPickerView:]: unrecognized selector sent to instance 0x7b4616d0
2015-01-09 17:50:05.338 Pet Stats[4953:244338] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSConcreteMapTable numberOfComponentsInPickerView:]: unrecognized selector sent to instance 0x7b4616d0'
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它发挥作用?我错过了什么?这是我的代码:
WeightWheelController.swift
import UIKit
class WeightWheelController: NSObject, UIPickerViewDelegate, UIPickerViewDataSource {
let ElementCount: Int!
init(pickerInterval: Int) {
ElementCount = pickerInterval
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> …Run Code Online (Sandbox Code Playgroud) uipickerview ios uipickerviewdatasource uipickerviewdelegate swift
我正在研究我的第一个Swift ios应用程序.
无法将pickerData中的数据导入我的选择器,但我只得到问号而不是实际值.我想这与代表有关,但不确定是什么问题.
import UIKit
import CoreData
class NewWorkoutController: UIViewController,UIPickerViewDelegate, UIPickerViewDataSource {
@IBOutlet weak var workoutDistance: UITextField!
let pickerData = ["11","12","13","14","15"]
// Data Sources
func numberOfComponentsInPickerView(distancePickerView: UIPickerView) -> Int {
return 1
}
func pickerView(distancePickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return pickerData.count
}
// Delegates
func pickerViewReturnRow(distancePickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
return pickerData[row]
}
func pickerViewText(distancePickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
workoutDistance.text = pickerData[row]
}
func doneDistancePicker() {
workoutDistance.resignFirstResponder() …Run Code Online (Sandbox Code Playgroud) 对于我的uipickerview,我有:
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
CGSize size = [pickerView rowSizeForComponent:0];
UILabel *labelMain = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height)];
labelMain.backgroundColor = [UIColor clearColor];
labelMain.font = [UIFont fontWithName:kFontSegoeSemiBold size:14];
labelMain.textColor = kColor_default_orangeText;
labelMain.textAlignment = NSTextAlignmentCenter;
int age;
// from
if (pickerView == self.pickerFrom) {
age = minAge + row;
}
// to
else {
age = minAge_pickerTo + row;
}
labelMain.text = [NSString stringWithFormat:@"%d", age];
return labelMain;
}
Run Code Online (Sandbox Code Playgroud)
我知道如何制作蓝色选择指示器(我在uipickerview后面放置蓝色视图,并将标签背景颜色设置为clearColor.
我需要有这个选择器(从/到年龄选择器)(蓝色垂直线只适用于photoshop):

现在我已经创建了这个选择器:

我有一个问题:
我想在选择指示器(或拾取器视图的中心)中的区域具有白色文本颜色,在拾取器视图的其他区域中具有橙色文本颜色.可能吗?