我有一个UISegmentedControl并且我有一些照片,我最初的目标是当我点击一个特定的片段时,一个特定的图像应该出现在视图上。
例如:如果我有四个片段和四个图像,那么在每个片段上我点击我必须看到一个图像。
在这里,我使用以下特定代码获取了NSArray并上载了所有这些图像:
NSArray * images = [NSArray arrayWithObjects:[UIImage imageNamed:@"f.ppg"], [UIImage imageNamed:@"t.ppg"....etc ], nil];
之后我想将每个特定图像附加到段索引。所以这是我写的代码。
-(IBAction) segmentActionChanged:(id)sender
{
int segment = mSegment.selectedSegmentIndex;
mImageView.image=[images objectAtIndex:segment];
}
在编译应用程序时,我没有显示任何图像,而是突然退出。
对此有任何帮助。
答案 0 :(得分:1)
回答问题1和3(我认为)。
要显示图像,您需要在某处UIImageView
。一个简单的方法是创建一个这样的方法。
//somewhere in viewDidLoad perhaps?
//title array is an array of strings to use as the label on each section of your control
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:titleArray];
//this sets the segmentAction: method as the selector for your particular UISegmentedControl
//(so when its value is changed, segmentAction: gets called)
[segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
//the segmentAction: method
- (IBAction) segmentAction:(id)sender
{
//This assumes you have declared the imageView elsewhere, as well as the array and that you
//are using Interface Builder to create/hookup the segmentControl. Basically
myImageView.image = [myImageArray objectAtIndex:sender.selectedSegmentIndex];
}
一些注意事项:这并没有利用延迟加载,因为您在显示它们之前在数组中创建并保存所有图像。我建议为UISegmentedControl创建一个实例变量,这样你就可以在任何地方访问它。 免责声明:此代码不完整,并假设进行了一些初始化。
回答第二个问题:处理手机/设备相机或保存的相册时使用UIImagePickerController
。它包含在文档中。
答案 1 :(得分:0)
看起来你错过了保留。