实现图片的滚动,并且自动停止在每张图片上
 
 
- (void)viewDidLoad
{
    [super viewDidLoad];

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 20, 320, 200)];
    
    for (int i=1; i<=8; ++i) {
        UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg", i]];
        UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(320*(i-1), 0, 320, 200)];
        imageView.image = image;
        [scrollView addSubview:imageView];
    }
    
    scrollView.bounces = NO;
    scrollView.showsHorizontalScrollIndicator = NO;
    scrollView.pagingEnabled = YES;
    scrollView.contentSize = CGSizeMake(320*8, 200);
    [self.view addSubview:scrollView];
    
    
    // Do any additional setup after loading the view.
}

 
 
将图片猩猩假如scrollView 中
 
- (void)viewDidLoad
{
    [super viewDidLoad];
     UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(10, 30, 300, 400)];
     scrollView.backgroundColor = [UIColor orangeColor];
     
     UIImage *image = [UIImage imageNamed:@"1.jpg"];
     UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
     [scrollView addSubview:imageView];
     scrollView.contentSize = CGSizeMake(image.size.width, image.size.height);
     [self.view addSubview:scrollView];
    
    // Do any additional setup after loading the view.
}
 
手势:
 
@interface QFViewController ()<UIGestureRecognizerDelegate]]>
@property (weak, nonatomic) IBOutlet UILabel *myLabel;

@end

@implementation QFViewController{
    CGFloat preScale;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
// 手势
    /*
    UITapGestureRecognizer;//单击
    UIPinchGestureRecognizer;//缩放手势
    UIRotationGestureRecognizer;//旋转手势
    UISwipeGestureRecognizer;//扫动手势(上下左右)
    UIPanGestureRecognizer;//滑动手势
     */
    UIPinchGestureRecognizer *pinchGR=[[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(onPinch:)];
    [self.myLabel addGestureRecognizer:pinchGR];
    //label、imageview默认不接受人机交互,要手动设置
    self.myLabel.userInteractionEnabled=YES;
    preScale=1;
}
-(void)onPinch:(UIPinchGestureRecognizer *)pGR{
    NSLog(@"%@",pGR);
    NSLog(@"%f",pGR.scale);
    /*
     UIGestureRecognizerStateBegan,
     UIGestureRecognizerStateChanged,
     UIGestureRecognizerStateEnded,
     */
    if (pGR.state==UIGestureRecognizerStateChanged) {
        self.myLabel.font=[UIFont systemFontOfSize:17*preScale*pGR.scale];
    }
    if (pGR.state==UIGestureRecognizerStateEnded) {
        preScale=preScale*pGR.scale;
    }
    
    
}

@end

 

IOS UI 第八篇:基本UI

IOS UI 第八篇:基本UI的更多相关文章

  1. IOS设计模式第八篇之键值观察模式

    版权声明:原创作品,谢绝转载!否则将追究法律责任. 键值观察模式: 在KVO,一个对象可以要求被通知当他的某个特殊的属性被改变了.自己或者另一个对象.如果你感兴趣你可以阅读更多的信息参考: Apple ...

  2. iOS进阶指南试读之UI篇

    iOS进阶指南试读之UI篇 UI篇 UI是一个iOS开发工程师的基本功.怎么说?UI本质上就是你调用苹果提供给你的API来完成设计师的设计.所以,想提升UI的功力也很简单,没事就看看UIKit里的各个 ...

  3. 四核驱动的三维导航—淘宝新UI(设计篇)

    前面有一篇博客说到了淘宝UWP的"四核驱动的三维导航—淘宝新UI(需求分析篇)",花了两周的时间实现了这个框架,然后又陆陆续续用了三周的时间完善它. 多窗口导航,与传统的导航方式的 ...

  4. 游戏模块分析总结(2)之UI、操作篇

    转自:http://www.gameres.com/309812.html 游戏模块分析总结(2)之UI.操作篇 发布者: wuye | 发布时间: 2014-12-12 15:03| 评论数: 0 ...

  5. 环信 之 iOS 客户端集成四:集成UI

    在Podfile文件里加入 pod 'EaseUI', :git => 'https://github.com/easemob/easeui-ios-cocoapods.git' 然后在终端中的 ...

  6. WPF 精修篇 非UI进程后台更新UI进程

    原文:WPF 精修篇 非UI进程后台更新UI进程 <Grid> <Grid.RowDefinitions> <RowDefinition Height="11* ...

  7. iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)

    iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)   前面我们介绍了StoryBoard这个新技术,和纯技术 ...

  8. 利用手上的UI资源(附免费UI工具包)

    http://www.uisdc.com/how-to-use-ui-kits# 大家都知道,UI工具包里有很多好看的资源:比如按钮.滑块.面包屑.播放器.表单,甚至是一个"赞!" ...

  9. 【译】SQL Server索引进阶第八篇:唯一索引

    原文:[译]SQL Server索引进阶第八篇:唯一索引     索引设计是数据库设计中比较重要的一个环节,对数据库的性能其中至关重要的作用,但是索引的设计却又不是那么容易的事情,性能也不是那么轻易就 ...

随机推荐

  1. JavaScript的类型、值和变量的总结

    前言:JavaScript的数据类型分为两类:原始类型和对象类型.5种原始类型:数字.字符串.布尔值.null(空).undefined(未定义).对象是属性的集合,每个属性都由“名/值对”(值可以是 ...

  2. HTTP必知必会(转)

    HTTP协议作为网络传输的基本协议,有着广泛的应用.HTTP协议的完整内容很多,但是其核心知识却又简单精炼.学习者应该掌握其基本结构,并且能够举一反三.这篇文章所列的,就是在实际开发中必须知道必须掌握 ...

  3. 记得12306货运系统“抢购空”编写插件--chrome交互式插件的各个部分

    --chrome交互式插件的各个部分 Chrome插件的基础知识就不多说了.随便找个新手教程就能够上手了,比如官方提供的Overview与Getting Started教程足够入门了:笔者也是现学现卖 ...

  4. 使用CNN(convolutional neural nets)关键的一点是检测到的面部教程(四):学习率,学习潜能,dropout

    第七部分 让 学习率 和 学习潜能 随时间的变化 光训练就花了一个小时的时间.等结果并非一个令人心情愉快的事情.这一部分.我们将讨论将两个技巧结合让网络训练的更快! 直觉上的解决的方法是,開始训练时取 ...

  5. 华为G520联通版刷机包 基于MIUI CM11新 平稳 稳定

    ROM介绍 刷先配置双卡:"设定-安卓原生设置-双卡套-配置订阅",否则,无信号 使开发人员选项方法:"设定-安卓原生设置-关于手机-发布"连续点击版本 启用A ...

  6. crawler_Docker_解决用 JavaScript 框架开发的 Web 站点抓取

    [转载,后续补上实践case] 有了 Docker,用 JavaScript 框架开发的 Web 站点也能很好地支持网络爬虫的内容抓取 [编者的话]Prerender 服务能够为网络爬虫提供预先渲染的 ...

  7. iOS10收集IDFA,植入第三方广告[终结]--ADMob

    [PS: 前段时间,公司做ASO推广,需要在应用中收集IDFA值,跟广告平台做交互!于是有了这个需求--] 1.首先,考虑了一下情况(自己懒 -_-#),就直接在首页上写了一个Banner,循环加载广 ...

  8. 怎样下载并编译Android4.0内核源代码goldfish(图文)

    关于怎样下载Android4.0源代码,请查看我的博客内还有一篇文章(相同是图文教程): http://blog.csdn.net/flydream0/article/details/7036156 ...

  9. 有空就写个C++程序

    近期工作变得轻松了非常多,有了一些空暇的时间,准备把大学时候的C++抓起来,而且研究研究算法: 第一个C++程序:计算圆的面积,也是看其它的博客写出来的C++程序. #include<iostr ...

  10. struts2 通配符简化配置

    在struts映射中反复出现的模式 动作方法 描写叙述 下一个动作方法 add 为save准备网页 save save 提交INSERT list edit 为update准备网页 update up ...