有没有办法让UIPickerView将数字升级为无穷大?哈哈.开玩笑,但说真的,我只想要一堆数字,但我不想硬编码.
提前致谢!
我得到了一个字符串mild,medium,hot.我用逗号分隔字符串作为分隔符.我也需要在pickerView中打印它.
我使用以下代码并将List计数成功3.
NSString *spList=[mdict objectForKey:@"spicinesstype"];
NSArray *list = [spList componentsSeparatedByString:@","];
NSLog(@"List count:%d",[list count]);
return [list count];
Run Code Online (Sandbox Code Playgroud)
但是如何在pickerview中显示所有3个项目
我有一个带有3个组件的UIPickerView,我需要前两个组件来显示一个字符串,第三个组件显示一个图像.我可以通过实施两者来实现这一点:
- (NSString *) pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row
forComponent:(NSInteger)component reusingView:(UIView *)view
Run Code Online (Sandbox Code Playgroud)
或者我是否需要创建标签并仅实施viewForRow?
我有一个mainViewController,我有一个UIPickerView.现在所有设置都很好,但是当我运行应用程序并选择textField时,我的UIPickerView列表中会出现问号.
现在我刚刚了解到,那是因为我还没有连接代表.但是,如果我为它连接委托,则不会填充textField.
TextField位于mainViewController中.
因此,在我的MainViewController.h中,我导入了UIPickerView并拥有此代码 - 这些都没有错误._pv是UIPickerView.
_pv = [[CategoryPicker alloc] init];
[_pv.categoryPicker setDelegate:self];
[_pv.categoryPicker setDataSource:_pv];
[_appPriorityTxtFld setInputView:_pv];
[_appPriorityTxtFld setInputAccessoryView:toolbar];
Run Code Online (Sandbox Code Playgroud)
现在您可以看到Delegate设置为self,这将允许填充textField.
如果我将其设置为_pv,那么我会正确显示列表,但不填充textField.
我错过了什么?
干杯
我在动作表中创建了一个以编程方式定制的uipicker,现在我需要设置一个文本字段,其中包含选择器的选择项.使用datepicker,我得到这样的值:
actionSheetDatePicker.DatePicker.ValueChanged += (s, e) => {
this.lblCheckOut.Text = f.ToString ((s as UIDatePicker).Date);
};
Run Code Online (Sandbox Code Playgroud)
现在我正在尝试用我的UIPickerView做同样的事情,但我没有ValueChanged方法.
有没有人可以帮助我获取用我的选择器选择的项目的价值.
提前致谢.
嗨我的UI Picker不再适用于iOS7,它弹出但它是空白的.只发生在iOS7上.
//picker
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
animationsLabel.text = [optionsArray objectAtIndex:[picker selectedRowInComponent:0]];
if (pickerView==animationsPicker) {
animationsLabel.text = [optionsArray objectAtIndex:[animationsPicker selectedRowInComponent:0]];
}
}
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 1;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return [optionsArray count];
}
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
return [optionsArray objectAtIndex:row];
NSLog(@"title options array %lu",(unsigned long)optionsArray.count);
}
Run Code Online (Sandbox Code Playgroud)
行动:
-(IBAction)animationActionSheet:(id)sender {
UIActionSheet *selectPopup = [[UIActionSheet alloc] initWithTitle:@"\n\n\n\n\n\n\n\n"
delegate:nil
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];
[selectPopup showInView:self.view];
optionsArray = [[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"6",@"5",@"7",@"8",@"9", nil];
// Create picker
animationsPicker = [[UIPickerView alloc] initWithFrame:CGRectMake(10, 160, 320, 100)]; …Run Code Online (Sandbox Code Playgroud) 所以我不能为你提供任何代码,但是我想要实现的很简单.我正在寻找一种从iOS 8(Swift)中的UIPickerView获取所选值的方法,这些pickerviews具有自定义委托和数据源.
因此,didSelectRow的方法是在自定义类中访问的,而不是ViewController,但我必须能够获取所选值并在ViewController中使用它.让我们说,把它放在一个文本框中.
如果我尝试访问委托本身或我应该做什么,我找不到办法做到这一点?
关心与应用程序开发的学生分享您的知识?:)
我正在构建一个UIPickerView,它可以正常使用我的代码.
//Title for Row
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
if (component==kNumComponent)
return Number[row];
else if(component==kSeaComponent)
return Season[row];
else
return Course[row];
}
Run Code Online (Sandbox Code Playgroud)
其中Number,Season和Course是存储字符串的NSArray.在这里,我想将字体大小更改为较小的字体.我在这里学到了一些例子.
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row
forComponent:(NSInteger)component reusingView:(UIView *)view {
UILabel *retval = (id)view;
if (!retval) {
retval= [[[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, [pickerView rowSizeForComponent:component].width, [pickerView rowSizeForComponent:component].height)] autorelease];
}
retval.font = [UIFont systemFontOfSize:22];
retval.text = [pickerViewArray objectAtIndex:row];
return retval;
}
Run Code Online (Sandbox Code Playgroud)
有没有快速的方法让我将上面的代码组合到我的可用代码中来改变字体大小?说,我想需要在某处传递"Retval"?
更新:感谢Scotts的提示(见下文),我的方法有效,发布在这里:
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row
forComponent:(NSInteger)component reusingView:(UIView *)view {
UILabel *retval = (UILabel*)view;
if (!retval) {
retval …Run Code Online (Sandbox Code Playgroud) 我一直在寻找并尝试为此问题提供的所有代码示例,但是我似乎无法使其正常工作.这是我第一次制作一个应用程序(除了完成教程),请原谅我提出一个'愚蠢'的问题.我只是个新手.
我正在尝试创建一个iOS应用程序来注册开始和结束时间,服务类型和客户.一旦用户点击UITextField,UIPicker就会弹出显示信息.我能够为开始和结束时间创建UIDatePicker,并为服务和客户创建一个空的UIPickerView.
我遇到的问题是,我正在尝试将UIPickerView的客户名称和服务类型添加到每个.但到目前为止还没有成功.我已经尝试添加一个数组,但UIPickerView中没有任何内容.在故事板中,我为每个项目添加了4个标签和4个UITextField.
.h的代码如下所示:
@interface ViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate> {
UIDatePicker *datePicker;
UIDatePicker *datePicker2;
NSArray *dienstArray;
NSArray *klantArray;
}
@property (strong, nonatomic) IBOutlet NSArray *dienstArray; //Service Array
@property (strong, nonatomic) IBOutlet NSArray *klantArray; //Customer Array
@property (weak, nonatomic) IBOutlet UIPickerView *dienstPicker; //Service PickerView
@property (weak, nonatomic) IBOutlet UIPickerView *klantPicker; //Customer PickerView
@property (weak, nonatomic) IBOutlet UITextField *dienstTextField; //Service TextField
@property (weak, nonatomic) IBOutlet UITextField *klantTextField; //Customer TextField
@property (weak, nonatomic) IBOutlet UITextField *dateSelectionTextField; //BeginDate TextField
@property (weak, nonatomic) IBOutlet …Run Code Online (Sandbox Code Playgroud) “已经回答了类似的问题,但不适用于我的应用程序”
有什么办法可以让我UIPickerView循环播放吗?我每列都有 0 到 9,但我不希望它以 9 结束。我还有一个 UIButton,它有一个func使数字跳过一个数字的数字,它从 000 到 999 开始,如果我UIPickerView将一个循环我不希望它对其数学顺序进行任何更改或影响这是到目前为止我所拥有的:
class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
@IBOutlet weak var label: UILabel!
@IBOutlet weak var pickerView: UIPickerView!
let numbers = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 3
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return numbers[row]
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) …Run Code Online (Sandbox Code Playgroud) 我已经设置了如上图所示的选择器视图,我们可以看到,在视图控制器出现后的起始点,选择将自动显示列表中的第一个字符串(伦敦).但我希望当视图第一次出现时,它会显示列表中间的字符串选择,如下图所示
这是我使用的代码
class ViewController: UIViewController,UIPickerViewDelegate,UIPickerViewDataSource {
@IBOutlet weak var cityLabel: UILabel!
@IBOutlet weak var cityPicker: UIPickerView!
let city = ["London","New York","Tokyo","Kuala Lumpur","Bali","Manchester","Madrid"]
override func viewDidLoad() {
super.viewDidLoad()
// UIPickerView Delegate dan Datasource sebagai self sudah dilakukan melalui interface builder dengan mendrag ke tombol lingkaran kuning dari pickerview nya
cityLabel.text = city[6]
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return city.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow …Run Code Online (Sandbox Code Playgroud) uipickerview ×11
ios ×10
objective-c ×5
iphone ×4
delegates ×2
swift ×2
datasource ×1
ios7 ×1
loops ×1
uitextfield ×1
xamarin.ios ×1