您的位置:首页 > 移动开发 > IOS开发

IOS开发技术问题总结(六)

2016-03-20 22:24 459 查看



九、UI动画


1、基础切换动画使用

[UIView beginAnimations:@"animationID" context:nil];

[UIView setAnimationDuration:10.5f];

[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationRepeatAutoreverses:NO];

[UIView

setAnimationTransition:

UIViewAnimationTransitionFlipFromLeft
//
UIViewAnimationTransitionFlipFromRight
// UIViewAnimationTransitionCurlUp
// UIViewAnimationTransitionCurlDown

forView:self.view

cache:YES];
;
[UIView commitAnimations];//提交动画


2、基于UIVIEW的动画

先引入#import <QuartzCore/QuartzCore.h>

CATransition*animation =
[CATransition animation];

//animation.delegate = self;

animation.duration =
10.5f;

animation.timingFunction =
UIViewAnimationCurveEaseInOut;

animation.fillMode =
kCAFillModeForwards;

//animation.removedOnCompletion = NO;

animation.type =
kCATransitionPush;

animation.subtype =
kCATransitionFromTop;

;
[self.view.layer
addAnimation:animation
forKey:@"animation"];
//提交动画



十、地理信息


1、初始化地理信息管理对象,并进行简单设置。

CLLocationManager *locManager =
[[CLLocationManager alloc]init];

locManager . delegate
= self;//实现代理

locManager .desiredAccuracy =
kCLLocationAccuracyBest;

//设置定位精度

//kCLLocationAccuracyNearestTenMeters

//kCLLocationAccuracyHundredMeters

//kCLLocationAccuracyKilometer

//kCLLocationAccuracyThreeKilometers

locManager . distanceFilter
= 30;//设置目标移动多少米后刷新坐标

[locManager startUpdatingLocation];//开始获得并监控当前的坐标
[locManager stopUpdatingLocation];//停止获得和监控当前的坐标

2、向地图指定坐标添加自定义标签

首先实现标签对象,要求继承MKAnnotation接口,并至少实现以下对象:

#import <Foundation/Foundation.h>

#import <MapKit/MKAnnotation.h>
#import <MapKit/MapKit.h>

@interface ZYLMapAnnotation :
NSObject <MKAnnotation>{

CLLocationCoordinate2D coordinate;//添加标签的坐标

NSString *title;//标签的主标题

NSString *subtitle;//标签的小标题

}

@property (nonatomic,
assign)
CLLocationCoordinate2D coordinate;

@property (nonatomic,
copy) NSString
*title;

@property (nonatomic,
copy) NSString
*subtitle;

#import "ZYLMapAnnotation.h"

@implementation ZYLMapAnnotation

@synthesize coordinate,title,subtitle;

-(void)dealloc{

[title release];

[subtitle release];

[super dealloc];

}

@end

进而在适当的类中向地图(MKMapView)添加标签

ZYLMapAnnotation *tMA =
[[ZYLMapAnnotation alloc]
init];

tMA.title =
pTitle;

tMA.subtitle =
pSubtitle;

tMA.coordinate =
pLocation.coordinate;

[map addAnnotation:tMA];

在实现了地图接口MKMapViewDelegate的以下方法,则在添加标签的时候会自动调用并添加自定义的标签

- (MKAnnotationView *)mapView:(MKMapView *)mapView

viewForAnnotation:(id <MKAnnotation>)annotation{

ZYLMapAnnotation*tMa =
(ZYLMapAnnotation*)annotation;

MKAnnotationView* tagView =
[[[MKAnnotationView alloc]

initWithAnnotation:
tMa

reuseIdentifier:nil]

autorelease];

tagView.canShowCallout =
YES;//是否允许弹出气泡

tagView.image =
[UIImage imageNamed:@"当前位置.png"];

tagView.rightCalloutAccessoryView = nil;

tagView.leftCalloutAccessoryView = nil;

//在气泡的左侧或右侧添加高度小于32px,宽度加上标题宽度小于300px的视图,并可以对视图的操作做出响应,一般为动态生成。可以同时在两侧添加,但宽度之和小于300px。

return tagView;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: