Noob запрос относительно UIPickerView - PullRequest
0 голосов
/ 02 февраля 2012

Правильно, ребята, я довольно новичок в xcode и iPhone SDK, но продолжал работать над ним в течение последних нескольких недель, продвигаясь медленно, однако я только начал создавать приложение, использующее UIPickerView, так что пока у меня есть сборщик с 7 значениями. Когда значение выбрано, оно отображается внутри метки ... Довольно простая вещь. Но до сих пор я не могу найти какие-либо учебные пособия, которые охватывают, как загрузить стандартный UIImageView, к которому я могу затем обмениваться изображениями в зависимости от того, что выбрано в средстве выбора. (Кружка снимков каждого человека) это или направить меня в правильном направлении .....

Пока мой код довольно стандартный:

в файле .h у меня есть: -

#import <UIKit/UIKit.h>

@interface Team : UIViewController
{
    IBOutlet UIPickerView *pickerView;
    NSMutableArray *list;
    IBOutlet UILabel *pickerLabel;
    IBOutlet UIImage *pickerImage;
}
@end

и в файле .m у меня есть: -

#import "Team.h"

@implementation Team

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

-(NSInteger) pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component{
    return [list count];
}

-(NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
    return [list objectAtIndex:row];

}

-(void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{

    NSString *string = [NSString stringWithFormat:@"You Selected %@", [list objectAtIndex:row]];
    pickerLabel.text = string;
}



- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)didReceiveMemoryWarning
{
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle

- (void)viewDidLoad
{
    [super viewDidLoad];
    list = [[NSMutableArray alloc]init];
    [list addObject:@"Doug Filder"];
    [list addObject:@"Chris Savage"];
    [list addObject:@"Nick Bennett"];
    [list addObject:@"Aimee Vacher"];
    [list addObject:@"Brandy Cardwell"];
    [list addObject:@"Jon West"];
    [list addObject:@"Dan Parsons"];

    // Do any additional setup after loading the view from its nib.
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

просто замените

  -(void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{

        NSString *string = [NSString stringWithFormat:@"You Selected %@", [list objectAtIndex:row]];
        pickerLabel.text = string;
        pickerImage = [UIImage imageNamed:string];
    }
1 голос
/ 02 февраля 2012

Вы можете использовать NSDictionary для хранения имени человека и связать имя файла, например:

Прежде всего, измените этот UIImage на UIImageView:

@interface Team : UIViewController
{
    IBOutlet UIPickerView *pickerView;
    NSMutableArray *list;
    NSMutableDictionary *filenames;
    IBOutlet UILabel *pickerLabel;
    IBOutlet UIImageView *pickerImage;
}
@end

Тогда вот как вы загружаете в него изображение:

- (void)viewDidLoad {
    list = [[NSMutableArray alloc]init];
    [list addObject:@"Doug Filder"];
    [list addObject:@"Chris Savage"];
    [list addObject:@"Nick Bennett"];
    [list addObject:@"Aimee Vacher"];
    [list addObject:@"Brandy Cardwell"];
    [list addObject:@"Jon West"];
    [list addObject:@"Dan Parsons"];

    filenames = [[NSMutableDictionary alloc] init];
    [filenames setObject:@"DougFilder.jpg" forKey:@"Doug Filder"];
    [filenames setObject:@"ChrisSavage.jpg" forKey:@"Chris Savage"];
    [filenames setObject:@"NickBennett.jpg" forKey:@"Nick Bennett"];
    [filenames setObject:@"AimeeVacher.jpg" forKey:@"Aimee Vacher"];
    [filenames setObject:@"BrandyCardwell.jpg" forKey:@"Brandy Cardwell"];
    [filenames setObject:@"JonWest.jpg" forKey:@"Jon West"];
    [filenames setObject:@"DanParsons.jpg" forKey:@"Dan Parsons"];
}

-(NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
    return [list objectAtIndex:row];

}

-(void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{

    NSString *string = [NSString stringWithFormat:@"You Selected %@", [list objectAtIndex:row]];
    pickerLabel.text = string;

    NSString *filename = [filenames objectForKey:[list objectAtIndex:row]];
    [pickerImage setImage:[UIImage imageNamed:filename]];
}

Надеюсь, это поможет! :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...