1
我試圖在UIPickerView的文本左側插入圖像。我的應用程序崩潰,它沒有圖像數組,但我不確定我做錯了什麼。我很新,請幫忙。謝謝!UIPickerView中的圖像和文本
.H
#import <UIKit/UIKit.h>
#define kFittingComponent 0
#define kStyleComponent 1
#define kSizeComponent 2
@interface ViewController : UIViewController{
NSArray *PickerData;
NSMutableArray *imageData;
}
@property (retain, nonatomic) IBOutlet UIPickerView *Picker;
@property (retain, nonatomic) NSArray *PickerData;
@property (retain, nonatomic) NSMutableArray *imageData;
@end
.M
#import "ViewController.h"
@interface ViewController()
@end
@implementation ViewController
@synthesize Picker,PickerData,imageData;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {}
return self;}
- (void)viewDidLoad
{[super viewDidLoad];
NSArray *array = [[NSArray alloc] initWithObjects:@"blank",@"one",@"two",nil];
self.PickerData = array;
NSMutableArray *imageArray = [[NSMutableArray alloc]initWithObjects:@"image1.png",@"image2.png", nil];
self.imageData = imageArray;}
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 1;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return [PickerData count];
}
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row
forComponent:(NSInteger)component reusingView:(UIView *)view
{
UIView *pickerCustomView = (id)view;
UILabel *pickerViewLabel;
UIImageView *pickerImageView;
if (!pickerCustomView) {
pickerCustomView= [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f,
[pickerView rowSizeForComponent:component].width - 10.0f, [pickerView rowSizeForComponent:component].height)];
pickerImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 35.0f, 35.0f)];
pickerViewLabel= [[UILabel alloc] initWithFrame:CGRectMake(37.0f, -5.0f,
[pickerView rowSizeForComponent:component].width - 10.0f, [pickerView rowSizeForComponent:component].height)];
[pickerCustomView addSubview:pickerImageView];
[pickerCustomView addSubview:pickerViewLabel];
}
pickerImageView.image = imageData[row];
pickerViewLabel.backgroundColor = [UIColor clearColor];
pickerViewLabel.text = PickerData[row];
pickerViewLabel.font = [UIFont fontWithName:@"ChalkboardSE-Regular" size:20];
return pickerCustomView;}
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
int long select = row;
if (select == 0){}
else
if (select == 1) {}
else
if (select == 2) {}
}
@end
你的應用崩潰在哪裏?什麼是信號或異常? – HAS
在main.m中線程1:信號SIGBART返回UIApplicationMain(argc,argv,nil,NSStringFromClass([AppDelegate class])); – Jeff
好的,問題在於你的'imageData'不包含圖像,而是字符串(文件名)。將您的'pickerImageView.image = imageData [row];'更改爲'pickerImageView.image = [UIImage imageNamed:imageData [row]];' – HAS