带图像的自定义选择器视图

发布于 2025-01-04 05:38:11 字数 904 浏览 3 评论 0原文

我学习了如何使用选择器视图、单打和双打。我想学习如何使用图像进行选择器视图。卷轴上没有数字或文字,而是有不同的图像可供选择。谢谢。我认为正在使用这段代码,但它运行了我,我找不到错误。感谢您的帮助。

 @synthesize picker, Array, image;



 - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
 {
      return 1;
 }


- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent: (NSInteger)component;
{   
         return [self.Array count];

    }
 - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{

 return [self.Array objectAtIndex:row];

 }

- (UIView *) pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:    (NSInteger)component reusingView:(UIView *)view
{
    NSString *img_src = [NSString stringWithFormat:@"6-12AM.png", row];

     UIImageView *image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:img_src]];

    return image;

}

I Learned how to use Picker views, singles and doubles. I would like to learn how to do a Picker view with images. Instead of numbers or words the scroll have different images to select one. Thanks. I think is using this code but it osent run me, I cant find the mistake. Thanks for your help.

 @synthesize picker, Array, image;



 - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
 {
      return 1;
 }


- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent: (NSInteger)component;
{   
         return [self.Array count];

    }
 - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{

 return [self.Array objectAtIndex:row];

 }

- (UIView *) pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:    (NSInteger)component reusingView:(UIView *)view
{
    NSString *img_src = [NSString stringWithFormat:@"6-12AM.png", row];

     UIImageView *image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:img_src]];

    return image;

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷清清 2025-01-11 05:38:11

编辑:我在最初的答案中混淆了您需要实现的功能。对此感到抱歉。

您需要实现

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

UIPickerView 委托的 方法来返回给定行的 UIImageView。

参考页面 这里。

例如(非常愚蠢的实现,没有重用视图)

- (UIView *) pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
NSString * img_src = [NSString stringWithFormat:@"image_%d.png", row];

UIImageView * retval = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:img_src]] autorelease];

return retval;
}

假设您有名为 image_[num].png 的图像你的资源。

EDIT: I confused the function you need to implement in my initial answer. Sorry for that.

You need to implement the

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

method of your UIPickerView delegate to return an UIImageView for a given row.

Reference page here.

for example (very dumb implementation without reusing views)

- (UIView *) pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
NSString * img_src = [NSString stringWithFormat:@"image_%d.png", row];

UIImageView * retval = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:img_src]] autorelease];

return retval;
}

assuming you have images named image_[num].png in your resources.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文