gpt4 book ai didi

iphone - 如何将图像放入此 UIPickerView 中?

转载 作者:搜寻专家 更新时间:2023-10-30 20:10:30 25 4
gpt4 key购买 nike

我不知道如何创建一个在文本一侧带有图像的自定义 UIPickerView。

我一直在寻找一种方法,我刚刚找到了这个:

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

但我不知道如何使用它。

这些是我的数组:
一切都很完美,我只想在每一行放一张不同的图片,有 10 种不同的颜色。3 个组件的颜色相同,但每一行的颜色不同。像这个图像。 LINK!!!

- (void)viewDidLoad
{
[super viewDidLoad];

Colores1 = [[NSMutableArray alloc] init];
[Colores1 addObject:@"Negro"];
[Colores1 addObject:@"Marrón"];
[Colores1 addObject:@"Rojo"];
[Colores1 addObject:@"Naranja"];
[Colores1 addObject:@"Amarillo"];
[Colores1 addObject:@"Verde"];
[Colores1 addObject:@"Azul"];
[Colores1 addObject:@"Violeta"];
[Colores1 addObject:@"Gris"];
[Colores1 addObject:@"Blanco"];

Colores2 = [[NSMutableArray alloc] init];
[Colores2 addObject:@"Negro"];
[Colores2 addObject:@"Marrón"];
[Colores2 addObject:@"Rojo"];
[Colores2 addObject:@"Naranja"];
[Colores2 addObject:@"Amarillo"];
[Colores2 addObject:@"Verde"];
[Colores2 addObject:@"Azul"];
[Colores2 addObject:@"Violeta"];
[Colores2 addObject:@"Gris"];
[Colores2 addObject:@"Blanco"];

Colores3 = [[NSMutableArray alloc] init];
[Colores3 addObject:@"Negro"];
[Colores3 addObject:@"Marrón"];
[Colores3 addObject:@"Rojo"];
[Colores3 addObject:@"Naranja"];
[Colores3 addObject:@"Amarillo"];
[Colores3 addObject:@"Verde"];
[Colores3 addObject:@"Azul"];
[Colores3 addObject:@"Violeta"];
[Colores3 addObject:@"Gris"];
[Colores3 addObject:@"Blanco"];
}

这是我的 uipickerview:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 3;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{

if(component == Primbanda)
return [Colores1 count];
if(component == Segubanda)
return [Colores2 count];
if (component == tercbanda)
return [Colores3 count];
return 0;
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
if(component == Primbanda)
return [Colores1 objectAtIndex:row];
if(component == Segubanda)
return [Colores2 objectAtIndex:row];
if (component == tercbanda)
return [Colores3 objectAtIndex:row];
return 0;

}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
NSLog(@"Row is:%d Component is:%d",row,component);

int a;//entero de componente 1
int b;//entero de componente 2
double c;//entero de componente 3
double resultado;
int d; //valor de componente 1 y 2
NSString *a1; //cadena de a y b!

a = [pickerView selectedRowInComponent:0]; //asigno a las variables segun el numero!!
b = [pickerView selectedRowInComponent:1];

switch ([pickerView selectedRowInComponent:2]) { //asi se le asignan valores propios!
case 0:
c=1;
break;
case 1:
c=10;
break;
case 2:
c=100;
break;
case 3:
c=1000;
break;
case 4:
c=10000;
break;
case 5:
c=100000;
break;
case 6:
c=1000000;
break;
case 7:
c=10000000;
break;
case 8:
c=100000000;
break;
case 9:
c=1000000000;
break;
default:
break;
}
NSLog(@"El valor de la tercera es ;%f",c);
a1 = [[NSString alloc]initWithFormat:@"%d%d",a,b]; //junto las variables a y b
d= [a1 intValue]; //guardo en la variable
NSLog(@"el valor de C multiplicado es %f",c);

resultado = d*c; //multiplica ab por el valor de c

NSLog(@"valor de resistencia es %.0f Ohms",resultado); //awebo! me salio! :D

labelresultado.text = [[NSString alloc]initWithFormat:@"%.0f",resultado];

}

最佳答案

来自UIPickerViewDelegate docs

pickerView:viewForRow:forComponent:reusingView:

Called by the picker view when it needs the view to use for a given row in a given component.
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
Parameters

pickerView

An object representing the picker view requesting the data.
row

A zero-indexed number identifying a row of component. Rows are numbered top-to-bottom.
component

A zero-indexed number identifying a component of pickerView. Components are numbered left-to-right.
view

A view object that was previously used for this row, but is now hidden and cached by the picker view.

这里重要的是返回的 View ,它是用于在选择器 View 上显示该行内容的 View ,也是您要添加任何图像的地方。

首先您必须实现委托(delegate)方法,并在您的 .h 中声明它,如下所示:

MyClass <UIPickerViewDelegate>

在你的.m

myUIPickerObject.delegate = self;

然后像这样实现方法:

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
UIView *myColorView = [UIView new]; //Set desired frame
myColorView.backgroundColor = [UIColor redColor]; //Set desired color or add a UIImageView if you want...
UIImageView *myImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:"myImage.png"]];
[view addSubview:myImageView];
[view addSubview:myColorView];

//Add subview retains view, so OK to release now
[myImageView release];
[myColorView release];

return view;
}

希望对您有所帮助。

关于iphone - 如何将图像放入此 UIPickerView 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11298603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com