Ios 制作一个使用PickerView放置插针的应用程序

Ios 制作一个使用PickerView放置插针的应用程序,ios,mkmapview,uipickerview,mkannotation,mkannotationview,Ios,Mkmapview,Uipickerview,Mkannotation,Mkannotationview,我和一群朋友正在为我们技术课的一个项目创建一个iPhone应用程序。我们的应用程序将用于导航到我们地区不同的高中体育赛事地点。我们目前正在使用PickerView控制学校和体育的所有组合。采摘器有两个部件,一个用于学校,一个用于体育。我们已经设置了MapView 我们想知道如何使用Picker视图的输出为所有不同的学校/运动组合放置管脚。正如您在下面的代码中所看到的,我们目前有大量的if/then语句来接收来自PickerView的输出,但我们最终还是希望使其体积更小 以下是选择器输出的代码:

我和一群朋友正在为我们技术课的一个项目创建一个iPhone应用程序。我们的应用程序将用于导航到我们地区不同的高中体育赛事地点。我们目前正在使用PickerView控制学校和体育的所有组合。采摘器有两个部件,一个用于学校,一个用于体育。我们已经设置了MapView

我们想知道如何使用Picker视图的输出为所有不同的学校/运动组合放置管脚。正如您在下面的代码中所看到的,我们目前有大量的if/then语句来接收来自PickerView的输出,但我们最终还是希望使其体积更小

以下是选择器输出的代码:

    - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
int x = [pickerView selectedRowInComponent:0]; NSLog(@"Row 1: %i", x);
int y = [pickerView selectedRowInComponent:1]; NSLog(@"Row 2: %i", y);

//Blue Ridge
if (x == 0 && y == 0)
    {NSLog(@"Blue Ridge Basketball");}

else if (x == 0 && y == 1)
    {NSLog(@"Blue Ridge Basketball");}

else if (x == 0 && y == 2)
    {NSLog(@"Blue Ridge Cross Country");}

else if (x == 0 && y == 3)
    {NSLog(@"Blue Ridge Football");}

else if (x == 0 && y == 4)
    {NSLog(@"Blue Ridge Golf");}

else if (x == 0 && y == 5)
    {NSLog(@"Blue Ridge Soccer");}

else if (x == 0 && y == 6)
    {NSLog(@"Blue Ridge Softball");}

else if (x == 0 && y == 7)
    {NSLog(@"Blue Ridge Track");}

else if (x == 0 && y == 8)
    {NSLog(@"Blue Ridge Volleyball");}

else if (x == 0 && y == 9)
    {NSLog(@"Blue Ridge Wrestling");}

//DeeMack
   else if (x == 1 && y == 0)
    {NSLog(@"DeeMack Baseball");}

   else if (x == 1 && y == 1)
    {NSLog(@"DeeMack Basketball");}

   else if (x == 1 && y == 2)
    {NSLog(@"DeeMack Cross Country");}

   else if (x == 1 && y == 3)
    {NSLog(@"DeeMack Football");}

   else if (x == 1 && y == 4)
    {NSLog(@"DeeMack Golf");}

   else if (x == 1 && y == 5)
    {NSLog(@"DeeMack Soccer");}

   else if (x == 1 && y == 6)
    {NSLog(@"DeeMack Softball");}

   else if (x == 1 && y == 7)
    {NSLog(@"DeeMack Track");}

   else if (x == 1 && y == 8)
    {NSLog(@"DeeMack Volleyball");}

   else if (x == 1 && y == 9)
    {NSLog(@"DeeMack Wrestling");}

}
…等等,这一模式在另外11所学校继续实施


任何关于如何使用这些输出在地图上放置管脚的想法,或使代码更短的想法都将不胜感激。同样重要的是要注意,我们都是非常新的编码,所以越简单越好。谢谢

要缩短代码,只需维护两个数组,一个包含高中名称,另一个包含体育名称。 因此,创建2个nsarray作为控制器的属性

@property (strong, nonatomic) NSArray *highSchools;
@property (strong, nonatomic) NSArray *sports;
然后在viewDidLoad方法中,执行以下操作:

self.highSchools = [NSArray arrayWithObjects:@"Blue Ridge", @"DeeMack," nil];
self.sports = [NSArray arrayWithObjects:@"Baseball", @"BasketBall", @"Cross Country", nil];
因此,现在您的选择器委托方法将简化为:

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
    int x = [pickerView selectedRowInComponent:0]; NSLog(@"Row 1: %i", x);
    int y = [pickerView selectedRowInComponent:1]; NSLog(@"Row 2: %i", y);

    NSLog(@"%@ %@", [self.highSchools objectAtIndex:x], [self.sports objectAtIndex:y]);
}

现在,对于放置管脚,问题并不清楚,确切地说,您希望如何或在哪里放置管脚,以及管脚代表什么。似乎您希望根据所选学校所在位置的学校/运动组合在地图上添加一个pin。是吗?

是的,我们想在体育赛事地点(即棒球场或足球场)放置一个带有注释的大头针,标题类似“蓝岭”,然后副标题为“棒球”。我们这样做的主要问题是从选择器的输出到掉针。