Я понял это, или, по крайней мере, почти.Спасибо @ AhmadTK.
Это мой код:
#import <MapKit/MapKit.h>
#import "RackAnnotation.h"
#import <QuartzCore/CATransaction.h>
#import <QuartzCore/CAAnimation.h>
[...]
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == 0)
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
[cell.textLabel setText:theAnnotationSet._address];
[cell.textLabel setShadowColor:[UIColor whiteColor]];
[cell.textLabel setShadowOffset:CGSizeMake(0, 1)];
MKMapView *mapView=[[MKMapView alloc] initWithFrame:CGRectMake(1, 1, 68, 68)];
mapView.mapType=MKMapTypeStandard;
mapView.showsUserLocation=NO;
[mapView setContentMode:UIViewContentModeBottomRight];
MKCoordinateRegion region;
region.center=theAnnotationSet._coordinate;
MKCoordinateSpan span;
span.latitudeDelta = 0.01;
span.longitudeDelta = 0.01;
region.span=span;
[mapView setRegion:region animated:NO];
[mapView addAnnotation:theAnnotationSet];
[mapView setScrollEnabled:NO];
[mapView setUserInteractionEnabled:NO];
UIButton *mapButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 70, 70)];
[mapButton setBackgroundColor:[UIColor grayColor]];
CALayer *mapLayer = mapView.layer;
mapLayer.masksToBounds = YES;
mapLayer.cornerRadius = 10.0;
[mapButton addSubview:mapView];
[mapButton setContentEdgeInsets:UIEdgeInsetsMake(1, 1, 1, 1)];
CALayer *layer = mapButton.layer;
layer.masksToBounds = YES;
layer.cornerRadius = 10.0;
[cell addSubview:mapButton];
[cell setAccessoryView:mapButton];
[cell setEditing:YES];
NSLog(@"Title: %@", theAnnotationSet._address);
return cell;
}
else {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
return cell;
}
}
И вот результат:
Единственная проблема, которую ялевый получает его на левой стороне.Насколько я понимаю, это можно сделать только с помощью собственного подкласса или UITableViewCell или установки собственного представления в качестве заголовка.
Еще одна вещь, которую я оставил, чтобы выяснить, это как удалить "Googl"эта мини-карта.Я имею в виду, у меня есть это на главной карте, и теперь это просто раздражает меня.
Приветствия, Пол Пилен