通过捏合手势动作可以很轻松的来改变视图元素的一个比例,例如,我们在通过Safari 浏览器打开网页的时候,有时间为了能够更清晰的看到其中的一些文字,那么我们就需要放大我们的屏幕了,有时候我们又需要缩放页面。
手势的动作状态有如下三种,一般是按照顺序来进行转换的。
1. UIGestureRecognizerStateBegan
2. UIGestureRecognizerStateChanged
3. UIGestureRecognizerStateEnded
一旦捏合手势动作产生了之后,我们就需要在捕获的事件中进行一个页面调整。其中有两个比较重要的变量scale和velocity,前者是一个比例范围,后者是一个变化速率的,也就是说每次变化的一个像素点。
由于scale这个属性的值是每次都在变的,所以我们需要用另外一个变量来保存当前的一个scale的值,这个变量叫做currentScale,这样我们就可以进行一个缩小,变大的视图效果了 。
代码如下:
//
// ViewController.m
// 捏合手势
//
// Created by Rio.King on 13-11-2.
// Copyright (c) 2013年 Rio.King. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@property(nonatomic, strong)UIPinchGestureRecognizer *pinchGestureRecognizer;
@property(nonatomic, strong)UILabel *myBlackLabel;
@property(nonatomic, unsafe_unretained)CGFloat currentScale;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
CGRect labelRect = CGRectMake(0, 0, 200, 200);
self.myBlackLabel = [[UILabel alloc] initWithFrame:labelRect];
self.myBlackLabel.center = self.view.center;
self.myBlackLabel.backgroundColor = [UIColor grayColor];
/*without this line,the pinch gesture recognizer will not work*/
self.myBlackLabel.userInteractionEnabled = YES;
[self.view addSubview:self.myBlackLabel];
/*create the pinch Gesture Recognizer*/
self.pinchGestureRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinches:)];
[self.myBlackLabel addGestureRecognizer:self.pinchGestureRecognizer];
}
-(void)handlePinches:(UIPinchGestureRecognizer *)paramSender{
if (paramSender.state == UIGestureRecognizerStateEnded) {
self.currentScale = paramSender.scale;
}else if(paramSender.state == UIGestureRecognizerStateBegan && self.currentScale != 0.0f){
paramSender.scale = self.currentScale;
}
if (paramSender.scale !=NAN && paramSender.scale != 0.0) {
paramSender.view.transform = CGAffineTransformMakeScale(paramSender.scale, paramSender.scale);
}
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
运行结果如下:
展示一下初步的UI
方法一:
苹果审查委员会申诉的地址:http://developer.apple.com/appstore/contact/appreviewboard/,
最好是用英文写,理由原因列明,有其他相同的app通过了审核也要说明,语气最好诚恳但又必须坚定你的理由。
注意只有一次机会,如果还被驳回了,就好好改程序吧,时间大概2、3个星期,祝你好运!
方法二:
使用方法是,在iTunes Connect任意页面,点击底部的Contact us,App Review,里面有如下三项:
(1)Application Review Status Check: 如果某个状态卡住了,可以问问怎么回事。
(2)Request Expedited Review: 申请加急审核,这个是限制次数(频率?)的,申请太多次会被拒绝,请珍惜。
(3)Continuing Communication: 这个没用过,页面Title是App Rejection Clarification,申诉可以用这个。
参考:
http://www.cocoachina.com/bbs/simple/?t64220.html
http://webtoart.com/blog/post/manager_apps_on_itunes_app_store.html