MapKit主要的类是MKMapView,它提供了一个嵌入式的地图接口,就像在自带的Maps程序里提供的那样。你可以使用这个类在你的程序中显示地图和操作地图。
首先,创建一个Maps的应用,然后在MapsViewController.h键入以下代码:
#import <UIKit/UIKit.h> #import <MapKit/MapKit.h> @interface MapsViewController : UIViewController { MKMapView *mapView; } @end
对应的实现文件中键入以下代码:
- (void)viewDidLoad { [super viewDidLoad]; mapView = [[MKMapView alloc] initWithFrame:self.view.bounds]; mapView.showsUserLocation = TRUE; [self.view insertSubview:mapView atIndex:0]; }
记得在Frameworks中导入MapKit.framework。
应用初始化了一个MKMapView实例,并将它显示在主视图上,你可以看到一个标有你当前位置点的地图。
先看效果图:
图中显示了一个activity启动另一个activity的效果,布局文件是同一个。其中被启动的activity2是以对话框样式显示,不完全覆盖住启动它的activit1,类似alertDialog。这与普通的activity不同,默认情况下,activity2会完全遮住activity1,启动activity2后,会调用activity1的onStop方法,而这种以对话框样式显示的activity不会。
实现方法:
在AndroidManifest.xml注册activity2的时候,给activity2加上下面的属性:
<activity android:name=".activity2" android:theme="@android:style/Theme.Dialog"></activity>
NSDate *nowDate = [NSDate new];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
// 根据时区名字获取当前时间,如果该时区不存在,默认获取系统当前时区的时间
// NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Europe/Andorra"];
// [formatter setTimeZone:timeZone];
//获取所有的时区名字
NSArray *array = [NSTimeZone knownTimeZoneNames];
// NSLog(@"array:%@",array);
//for循环
// for(int i=0;i<[array count];i++)
// {
// NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:[array objectAtIndex:i]];
// [formatter setTimeZone:timeZone];
// NSString *locationTime = [formatter stringFromDate:nowDate];
// NSLog(@"时区名字:%@ : 时区当前时间: %@",[array objectAtIndex:i],locationTime);
// //NSLog(@"timezone name is:%@",[array objectAtIndex:i]);
// }
//快速枚举法
for(NSString *timeZoneName in array){
[formatter setTimeZone:[NSTimeZone timeZoneWithName:timeZoneName]];
NSLog(@"%@, %@",timeZoneName,[formatter stringFromDate:nowDate]);
}
[formatter release];
[nowDate release];