I suspect the problem is with your creation of the MKPolyline or perhaps the lineSize setting. This code works fine here:
#import <MapKit/MapKit.h>
#import "ViewController.h"
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
MKMapView *map = [[MKMapView alloc] initWithFrame:self.view.bounds];
map.delegate = self;
[self.view addSubview:map];
CLLocationCoordinate2D coords[] = { {42,-83}, {32, -84}, {45,-78}, {42,-83} };
MKPolyline *overlay = [MKPolyline polylineWithCoordinates:coords count:4];
[map addOverlay:overlay];
}
-(MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay {
if([overlay class] == [MKPolyline class]){
MKPolylineView *polylineView = [[MKPolylineView alloc] initWithPolyline:overlay];
int lineSize = 2; //[self.ud integerForKey:@"lineSize"];
polylineView.lineWidth = lineSize;
NSString *lineColor = @"Red"; // [self.ud objectForKey:@"lineColor"];
if([lineColor isEqualToString:@"Red"]){
polylineView.strokeColor = [UIColor redColor];
}else if([lineColor isEqualToString:@"Blue"]){
polylineView.strokeColor = [UIColor blueColor];
}else if ([lineColor isEqualToString:@"Orange"]){
polylineView.strokeColor = [UIColor orangeColor];
}else if([lineColor isEqualToString:@"Green"]){
polylineView.strokeColor = [UIColor greenColor];
}else if([lineColor isEqualToString:@"Black"]){
polylineView.strokeColor = [UIColor blackColor];
}
return polylineView;
}else{
MKOverlayView *overlayToReturn = [[MKOverlayView alloc]initWithOverlay:overlay];
return overlayToReturn;
}
}
@end