AJ学IOS(08)UI之热门_喜马拉雅UI实现-UIScrollView的使用
AJ分享,必须精品
先看效果
storyBoard用到的控件
代码实现
*/
//
// NYViewController.m
// 05 - 喜马拉雅
//
// Created by apple on 15-3-24.
// Copyright (c) 2015年 znycat. All rights reserved.
//
#import "NYViewController.h"
@interface NYViewController ()
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@property (weak, nonatomic) IBOutlet UIButton *lastButton;
@end
@implementation NYViewController
/**
setter方法
系统加载了Main.storyboard后,给scrollView对象进行赋值
此setScrollView方法是由系统自动调用的。
在看堆栈代用中 ,蓝色的是我们自己调用的,其他是系统的。
*/
-(void)setScrollView:(UIScrollView *)scrollView
{
//set方法中 第一句赋值
_scrollView = scrollView;
/**设置滚动视图内容
1,如果当前有间距,根据间距自动调整contentOffset
2,如果没有间距,contentOffset是(0,0)
简单说就是
contentSize 会根据边距调整offset
contentInset 不会调整offset
*/
//设置间距(指定内容外侧边距,并不会根据contentOffset来自动调整 )
self.scrollView.contentInset= UIEdgeInsetsMake(64, 0, 49, 0);
//设置滚动视图内容
self.scrollView.contentSize = CGSizeMake(0, CGRectGetMaxY(self.lastButton.frame));
NSLog(@"%s",__func__);
//修改contentOffset
/**如果先设置间距 然后再设置滚动视图的内容就不用再控制修改contentOffset了 这里是苹果设计的一个缺憾,耦合性太强,代码上下需要注意*/
// self.scrollView.contentOffset = CGPointMake(0, -64);
}
//视图加载完成后执行
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"%s",__func__);
}
@end
UIScrollView使用以及属性
移动设备的屏幕⼤大⼩小是极其有限的,因此直接展⽰示在⽤用户眼前的内容也相当有限,当展⽰示的内容较多,超出⼀一个屏幕时,⽤用户可通过滚动⼿手势来查看屏幕以外的内容, 普通的UIView不具备滚动功能,不能显⽰示过多的内容, UIScrollView是⼀一个能够滚动的视图控件,可以⽤用来展⽰示⼤大量的内容,并且可以通过滚 动查看所有的内容
举例:⼿手机上的“设置”、其他⽰示例程序
如果UIScrollView⽆无法滚动,可能是以下原因:
➢ 没有设置contentSize
➢ scrollEnabled = NO
➢ 没有接收到触摸事件:userInteractionEnabled = NO
➢ 没有取消autolayout功能(如果在Storyboard中添加了ScrollView的⼦子控件,要想 scrollView滚动,必须取消autolayout)
常用的属性
@property(nonatomic)CGPointcontentOffset;
// 这个属性⽤用来表⽰示UIScrollView滚动的位置
@property(nonatomic)CGSizecontentSize;
// 这个属性⽤用来表⽰示UIScrollView内容的尺⼨寸,滚动范围(能滚多远)
@property(nonatomic)UIEdgeInsetscontentInset;
// 这个属性能够在UIScrollView的4周增加额外的滚动区域
常见属性图片表示
ps:学习iOS的过程是一个看代码写代码的过程,虽然现在大多受都是UI,但是UI是相当重要的,这是客户第一眼看到的地方,就是我们app的脸,就像我们看人一样,都是先看脸,所以我们要让UI美起来。
ps:有朋友问AJ,说很多都直接用代码加载UI,为啥要用storyboard来脱线,啥的。
其实这里原因有好几个,比如有的小程序直接拖就可以了,完全没那么麻烦,用代码主要是为了后期维护方便,还有storyboard可以让我们事实的看到效果,有利于学习。
PS 当然代码写还是很重要的,(其实我更愿意全部用代码写) 代码掌控天下的感觉,爽爆了不过学习是一个渐进的过程。大家一起努力学习吧,喵呜
AJ学IOS(08)UI之热门_喜马拉雅UI实现-UIScrollView的使用的更多相关文章
- AJ学IOS(13)UI之UITableView学习(下)汽车名牌带右侧索引
AJ分享,必须精品 先看效果图 代码 ViewController #import "NYViewController.h" #import "NYCarGroup.h& ...
- AJ学IOS 之微博项目实战(2)微博主框架-自定义导航控制器NavigationController
AJ分享,必须精品 一:添加导航控制器 上一篇博客完成了对底部的TabBar的设置,这一章我们完成自定义导航控制器(NYNavigationController). 为啥要做自定义呢,因为为了更好地封 ...
- AJ学IOS(06)UI之iOS热门游戏_超级猜图
AJ分享,必须精品 先看效果图 思路 需求分析 1,搭建界面 1>上半部分,固定的,用Storyboard直接连线(OK) 2>下半部分,根据题目的变化,不断变化和调整,用代码方式实现比较 ...
- AJ学IOS(35)UI之Quartz2D仿真支付宝手势解锁_代理获得密码。
AJ分享,必须精品 效果: 实现步骤 其实这个实现起来不难 第一步先放好主要的UI,一张背景图和一个View 第二部就是把9个button放到view中,设置好按钮的默认和选中图片. 注意:创建时候的 ...
- AJ学IOS(09)UI之UIScrollView代理触摸实现_图片缩放
AJ分享,必须精品 先看效果 代码 // // NYViewController.m // 05-放大缩小图片UIScrollView // // Created by apple on 15-3-2 ...
- AJ学IOS(07)UI之UITextField代理事件_类似QQ登陆窗口的简单实现
AJ分享,必须精品 先看效果图: 学习代码 // // NYViewController.m // 05-UITextField事件_UIKit复习 // // Created by apple on ...
- AJ学IOS(40)UI之核心动画_抖动效果_CAKeyframeAnimation
AJ分享,必须精品 效果: 效果一: 效果二: 代码: // // NYViewController.m // 图片抖动 // // Created by apple on 15-5-8. // Co ...
- AJ学IOS(36)UI之手势事件旋转_缩放_拖拽
AJ分享,必须精品 效果 完成一个图片的捏合缩放,拖拽,旋转动作. 设计思路 拖拽: 首先是最简单的拖拽 //拖拽 -(void)panTest { UIPanGestureRecognizer *p ...
- AJ学IOS(29)UI之Quartz2D自定义下载控件_画各种图形
AJ分享,必须精品 效果 自定义控件过程 主要过程在上一篇里有介绍了,这里主要介绍下代码实现 先做好要放的view 然后实现呢主要就是四步: 1:获取上下文 2:拼接路径 3:把路径添加到上下文. 4 ...
随机推荐
- Python基础 | 关于“循环”那些事
目录 for 循环 list range enumerate zip while 循环 while相当于if时 while充当for和if的混合体 泛循环 列表解析 map 迭代器 生成器 循环的跳出 ...
- jenkins-gitlab-harbor-ceph基于Kubernetes的CI/CD运用(一)
注:这部分的学习还是要靠自己多点点 多尝试尝试 这部分19年3月份我是玩的很溜的,一年没用,基本忘光光了. 学习要温故而知新! 流程拓扑图 前提准备 部署应用服务 部署kubernetes 集群:ht ...
- Angular2入门(一)
原先用vue.js写的项目,最近领导要求改用Angular,于是开始自学之路.网上搜索了众多资料,包括谷歌原版书籍,但是Angular自从17年开始分为AngularJs和Angular两个版本,相差 ...
- hdu1242 又又又是逃离迷宫(bfs模板题)
题目链接:http://icpc.njust.edu.cn/Problem/Hdu/1242/ 这次的迷宫是有守卫的,杀死一个守卫需要花费1个单位的时间,所以以走的步数为深度,在每一层进行搜索,由于走 ...
- 洛谷1378 油滴扩展 dfs进行回溯搜索
题目链接:https://www.luogu.com.cn/problem/P1378 题目中给出矩形的长宽和一些点,可以在每个点放油滴,油滴会扩展,直到触碰到矩形的周边或者其他油滴的边缘,求出剩余面 ...
- upload-labs学习笔记
项目地址:https://github.com/c0ny1/upload-labs 运行环境 操作系统:windows.Linux php版本:推荐5.2.17(其他版本可能会导致部分Pass无法 ...
- OpenCV-Python 理解特征 | 三十六
目标 在本章中,我们将尝试理解什么是特征,为什么拐角重要等等 解释 你们大多数人都会玩拼图游戏.你会得到很多小图像,需要正确组装它们以形成大的真实图像.问题是,你怎么做?将相同的理论投影到计算机程序上 ...
- Visdom 介绍 | 二
用于创建,组织和共享实时丰富数据可视化的灵活工具.支持Python. 概述 概念 设置 用法 API 注意事项 贡献 API 要快速了解visdom的功能,请查看example目录,或阅读以下详细信息 ...
- Python NLP库top6的介绍和比较
文章来源:ActiveWizards https://medium.com/activewizards-machine-learning-company/comparison-of-top-6-pyt ...
- IOS 获取系统时间戳
IOS 获取系统时间戳常用方法 通用方法有如下三种: NSLog(); NSDate* dat = [NSDate dateWithTimeIntervalSinceNow:]; NSTimeInte ...