我正在尝试简化一个需要大量空间和时间来编写的switch语句.查看代码,你会明白的.如果没有,我稍后会解释.
// When row is selected
- (void)pickerView:(UIPickerView *)pickerTimer didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
switch (row) {
case 0:
NSLog(@"It obviously worked.0");
break;
case 1:
NSLog(@"It obviously worked.1");
break;
case 2:
NSLog(@"It obviously worked.2");
break;
case 3:
NSLog(@"It obviously worked.3");
break;
case 4:
NSLog(@"It obviously worked.4");
break;
case 5:
NSLog(@"It obviously worked.5");
break;
case 6:
NSLog(@"It obviously worked.6");
break;
default:
NSLog(@"It did kindof work.NIL");
break;
}
}
Run Code Online (Sandbox Code Playgroud)
有什么方法可以简化这个吗?只是喜欢,
NSLog(@"It did work! %@", row);
Run Code Online (Sandbox Code Playgroud)
为了记录,我尝试了,它没有用.
I created a UIPickerView inside an UIActionSheet, using the following tutorial:
Add UIPickerView & a Button in Action sheet - How?
我注意到UIPickerView它没有响应下半部分下方的触摸UIPicker.也许就在选择栏的下方,但不在下面.
有谁有过类似的经历并解决了吗?
我有一个UIPickerView.我想在pickerview的顶部有一个完成按钮,我想在点击完成按钮时关闭选择器视图.你可以帮帮我吗?
我只是想知道为什么选择指示器在我的iPad应用程序中看起来像这样.通过"喜欢这个"我的意思是前半部分有一种颜色图案而另一部分有另一种颜色图案.我以编程方式创建我的UIPickerView:
pickerView = [[UIPickerView alloc] init];
pickerView.showsSelectionIndicator = YES;
pickerView.delegate = self;
pickerView.dataSource = self;
txtFolder.inputView = pickerView;
Run Code Online (Sandbox Code Playgroud)
我需要pickerview显示相同的颜色模式.有任何想法吗?

我想将UIPickerView添加到UITableViewCell.现在我只是得到一个黑色的窗户.有人还可以向我解释将UI对象子类化到单元格的概念,即:我们何时将我们的单元格作为委托和数据源委托?谢谢
编辑:这是我现在正在做的代码
case 1: {
cell = [tableView dequeueReusableCellWithIdentifier:@"groups"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"groups"];
}
/*NSString *myGroupDetail = [_groupArray objectAtIndex:indexPath.row];
NSLog(@"the group detail label is %@",myGroupDetail);
cell.textLabel.text = myGroupDetail;
*/
[cell addSubview:_groupPicker];
break;
}
Run Code Online (Sandbox Code Playgroud)
这些组是我想要选择器视图的部分,我从数组中获取数据.

我有一个自定义的UIViewController子类,它充当UIPickerView的数据源和代理,我想服务于两个不同的目的,因为每个目的都足够简单,并且实际上并不需要单独的文件。一个操作必须作为自定义选择器,并且可以正常工作。但是,对于其他操作,我希望它像UIDatePicker一样工作。
问题是,UIDatePicker是UIControl的子类,而不是UIPickerView。我可以通过将UIPickerView设置为日期选择器的方法(或其他方式)设置任何枚举值吗?还是我必须制作两个完全不同的类并以不同的方式使用它们(屁股痛)?
对于我的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):

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

我有一个问题:
我想在选择指示器(或拾取器视图的中心)中的区域具有白色文本颜色,在拾取器视图的其他区域中具有橙色文本颜色.可能吗?
我正在使用swift构建iOS应用程序.
在我的viewcontroller中,我需要6个选择器视图.
以前我用IB创建了PickerViews.
现在我想以编程方式进行,因为我想实现完成和取消按钮.
我创建了一个示例项目并进行了检查.我正在显示选择器视图.
但在我原来的应用程序中,它不起作用.
可能是采摘者的数量很大.
并且每次选择器的标签值显示为零.
我试着像这样设置标签值,
pickerView.tag == 2
这是用于创建Picker的代码
func createPicker1(){
var pickerView = UIPickerView(frame: CGRectMake(0, 200, view.frame.width, 300))
pickerView.tag == 2
pickerView.backgroundColor = .greenColor()
pickerView.delegate = self
pickerView.dataSource = self
pickerView.showsSelectionIndicator = true
var toolBar = UIToolbar()
toolBar.barStyle = UIBarStyle.Default
toolBar.translucent = true
toolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1)
toolBar.sizeToFit()
println(pickerView.tag)
var doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "donePicker1")
var spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil) …Run Code Online (Sandbox Code Playgroud) 刚刚更新到Swift 3和xCode 8 Beta 4.
修复所有代码问题后,我现在有一个无错误的项目,但是当我点击我的前屏幕上的一个特定按钮时,它会抛出SIGABRT错误.
我确信它与目标页面上的UIPickerView元素有关,因为我已经删除,检查并重新添加了所有的segue和outlet以确保从那一方清楚一切.
控制台显示以下内容:
2016-08-02 18:59:46.607 ForceIt![38735:2895259] - [ForceIt_.DirectoryViewController numberOfComponentsInPickerView:]:无法识别的选择器发送到实例0x7fcd68c0c210 2016-08-02 18:59:46.618 ForceIt![38735:2895259]***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [ForceIt_.DirectoryViewController numberOfComponentsInPickerView:]:无法识别的选择器发送到实例0x7fcd68c0c210'
相关viewcontroller的代码如下:
import UIKit
var forceSelectedForTabView = String()
var forceSelectedPositionInArray = Int()
class DirectoryViewController: UIViewController, UIPickerViewDelegate {
@IBOutlet weak var forcePicker: UIPickerView!
@IBOutlet weak var selectedContactLabel: UILabel!
@IBOutlet weak var selectedPhoneTextView: UILabel!
@IBOutlet weak var selectedWebsiteTextView: UILabel!
//function for the number of columns in the picker
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
//function counting the array to …Run Code Online (Sandbox Code Playgroud) 我想知道如何UIPickerView在点击下拉式样式按钮后从屏幕底部向上滑动。如下图所示:
我经常使用的应用程序中经常遇到这种类型的选择器视图,所以说实话,我期望通过设置UIPickerView的style属性或类似方法轻松找到该选择器视图。这甚至UIPickerView还是我必须手动创建这种视图?
uipickerview ×10
ios ×5
iphone ×5
objective-c ×3
swift ×3
ipad ×2
xcode ×2
cocoa-touch ×1
sigabrt ×1
storyboard ×1
uitableview ×1
uitextfield ×1