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

九、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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值