UIScrollView无法滚动的解决办法及UIScrollView的代理(delegate)

1•如果UIScrollView无法滚动,可能是以下原因:

Ø没有设置contentSize

ØscrollEnabled = NO

Ø没有接收到触摸事件:userInteractionEnabled = NO

Ø没有取消autolayout功能(要想scrollView滚动,必须取消autolayout)

2.

•很多时候,我们想在UIScrollView正在滚动 或 滚动到某个位置 或者 停止滚动 时做一些特定的操作

•要想完成上述功能,前提条件就是能够监听到UIScrollView的整个滚动过程

•当UIScrollView发生一系列的滚动操作时, 会自动通知它的代理(delegate)对象,给它的代理发送相应的消息,让代理得知它的滚动情况

•也就是说,要想监听UIScrollView的滚动过程,就必须先给UIScrollView设置一个代理对象,然后通过代理得知UIScrollView的滚动过程

3

•在OC中,发送消息的意思就是调用方法

.       

3.成为delegate的条件

•一般情况下,就设置UIScrollView所在的控制器 为 UIScrollView的delegate

•设置控制器为UIScrollView的delegate有2种方法:

Ø通过代码(self就是控制器)

self.scrollView.delegate = self;

•然后,控制器应该遵守UIScrollViewDelegate协议

•最后,实现协议中定义的相关方法

4.UIScrollView的常见属性

•@property(nonatomic) CGPoint contentOffset;

Ø这个属性用来表示UIScrollView滚动的位置

•@property(nonatomic) CGSize contentSize;

Ø这个属性用来表示UIScrollView内容的尺寸,滚动范围(能滚多远)

•@property(nonatomic) UIEdgeInsets contentInset;

Ø这个属性能够在UIScrollView的4周增加额外的滚动区域

•利用UIScrollView显示下面的大图片

5.

•@property(nonatomic) BOOL bounces;

•设置UIScrollView是否需要弹簧效果

•@property(nonatomic,getter=isScrollEnabled) BOOL scrollEnabled;

Ø设置UIScrollView是否能滚动

•@property(nonatomic) BOOL showsHorizontalScrollIndicator;

Ø是否显示水平滚动条

•@property(nonatomic) BOOL showsVerticalScrollIndicator;

Ø是否显示垂直滚动条

时间: 2024-10-10 04:51:31

UIScrollView无法滚动的解决办法及UIScrollView的代理(delegate)的相关文章

UIScrollView无法滚动的解决办法

关于移动端js弹出层滚动的时候 body层不可滚动的解决办法

最近在做移动端网站,在点击导航栏,弹出导航列表时,出现了问题.下滑列表时底层body也跟着滚动,连查带想的折腾了两天才解决这个问题.下面主要分享一下解决办法以及关键代码. 一.有的网友建议弹出层弹出时给 html 和 body 都加上"height:100%:overflow:hidden:",然而在手机上并没有什么卵用 二.结合弹出层加上"overflow-y:auto"依然不起作用 .... 后来经过网友的帮助,结合我的代码终于找到了解决的办法 我的项目是用vu

【iOS开发-53】案例学习:scrollView的核心用法以及无法滚动的解决办法

案例效果: (1)主要的就是练习scrollView的用法.界面里面的其他元素基本都是UIView和UIButton堆砌起来的. (2)主要用代码实现,当然,可以先用storyboard拖个scrollView出来.注意需要滚动的都需要放在scrollView,注意层级关系. (3)我们要在代码中使用设置这个scrollView所以直接拖拽形成一个变量,代码都在ViewController.m中: --设置scrollView的最重要的三个属性如下,已用注释标出. --取得一个控件的最大最小X和

移动端js弹出层滚动的时候 body层不可滚动的解决办法

原文:https://blog.csdn.net/queenzjl/article/details/53507661 一.有的网友建议弹出层弹出时给 html 和 body 都加上"height:100%:overflow:hidden:",然而在手机上并没有什么卵用 二.结合弹出层加上"overflow-y:auto"依然不起作用 三.加上touchmove事件:window.ontouchmove = function(e){e.preventDefault()

含有按钮的ScrollView在iOS8中无法滚动的解决办法 | ScrollView with UIControl/UIButton subviews not scrollable under iOS 8

转自:http://zcw.me/blogwp/%E5%90%AB%E6%9C%89%E6%8C%89%E9%92%AE%E7%9A%84scrollview%E5%9C%A8ios8%E4%B8%AD%E6%97%A0%E6%B3%95%E6%BB%9A%E5%8A%A8%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95-scrollview-with-uicontroluibutton-subv/ origin:http://stackoverflow

[Cordova/Phonegap] Cordova iOS 应用在第三方输入法的键盘弹出(点击输入框)时,页面不上移,导致输入框被键盘遮挡 的解决办法

http://blog.csdn.net/lovelyelfpop/article/details/52033045 Cordova iOS应用在使用系统自带输入法键盘的时候,聚焦文本框是会将整体webview界面上移的,如下图: 然而,如果你用的是第三方输入法(百度.搜狗.qq输入法等都是),聚焦文本框弹出键盘时,界面却不会整体上移,导致文本框被软键盘遮挡,如下图: 不仅被遮挡,靠底部的文本框还无法往上拖拽滚至可视区域. 解决办法一:第三方键盘弹出,实现界面也能上移 使用 ionic-plug

线程间操作无效: 从不是创建控件“”的线程访问它 解决办法(转)

线程间操作无效: 从不是创建控件“”的线程访问它 解决办法 http://blog.sina.com.cn/s/blog_568e66230101der7.html 利用FileSystemWatcher设计一个文件监控系统时,如果一个文件被修改或者新建,则文件修改事件会被多次触发而产生多条信息.为了将一个文件被修改一次而产生的多条信息归结为一条,在设计中新开了一个线程,在指定时间内(如2秒内)这个文件的修改被认为是一次修改,从而只产生一条信息. 这个工作完成后,又出现了另外一个问题:因为需要在

iOS开发 iOS7显示偏差(UITableView, UIScrollView下移)解决办法

之前碰到过一个问题. 就是利用storyboard拖动出来的控件, 在iOS7上跑老是莫名的下移. 比如这样(红色区域为多余的) 解决办法: iOS7在Conttoller中新增了这个属性: automaticallyAdjustsScrollViewInsets,当设置为YES时(默认YES),如果视图里面存在唯一一个UIScrollView或其子类View,那么它会自动设置相应的内边距,这样可以让scroll占据整个视图,又不会让导航栏遮盖. 我们设置automaticallyAdjusts

利用递归 实现UIScrollView无限滚动的效果

项目需求 利用递归 实现UIScrollView无限滚动的效果. 上机试题, #import "ViewController.h" @interface ViewController (){ UIScrollView *mainScroll; BOOL isFinish; int x; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; x=0; isFinish = YES;