怎么设置scrollview左右滚动不能滚动

拒绝访问 |
| 百度云加速
请打开cookies.
此网站 () 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(ef6610-ua98).
重新安装浏览器,或使用别的浏览器主题 : scrollview不能横向滑动
级别: 新手上路
可可豆: 63 CB
威望: 63 点
在线时间: 18(时)
发自: Web Page
scrollview不能横向滑动
新人求助&&&
mac开发用了scrollview,但是只能上下滑动,不能左右滑动。请问代码是怎么编写的?我试了好几个都不太管用啊。求告知
级别: 骑士
UID: 89306
可可豆: 1624 CB
威望: 1608 点
在线时间: 291(时)
发自: Web Page
scrollview.contentSize = CGSizeMake(480,300); 这里的width足够大& 就能左右滑动 了。。。
级别: 新手上路
可可豆: 63 CB
威望: 63 点
在线时间: 18(时)
发自: Web Page
我试过这个,但是他说No setter method &setContentSize:& foe assignment to property我是把他写在了- (void)dealloc{
[super dealloc];
scrollView.contentSize = CGSizeMake(480,300);}里面。
级别: 骑士
UID: 89306
可可豆: 1624 CB
威望: 1608 点
在线时间: 291(时)
发自: Web Page
scrollView.contentSize = CGSizeMake(480,300);应该放在初始化加载方法中,viewdidload方法
级别: 圣骑士
UID: 21430
可可豆: 2237 CB
威望: 2110 点
在线时间: 626(时)
发自: Web Page
看了你的回复,建议你先看Objective-C基础知识。
级别: 新手上路
可可豆: 63 CB
威望: 63 点
在线时间: 18(时)
发自: Web Page
不知道我说的对不对啊,viewdidload应该是ios开发才有把。mac我建的程序里面没有啊
级别: 骑士
UID: 89306
可可豆: 1624 CB
威望: 1608 点
在线时间: 291(时)
发自: Web Page
看错了。。。。 我以为是ios开发呢。。
级别: 新手上路
可可豆: 63 CB
威望: 63 点
在线时间: 18(时)
发自: Web Page
那你知道在mac里面应该写到哪里吗?
级别: 骑士
UID: 89306
可可豆: 1624 CB
威望: 1608 点
在线时间: 291(时)
发自: Web Page
orry,这个我就不清楚了。
关注本帖(如果有新回复会站内信通知您)
苹果公司现任CEO是谁?2字 正确答案:库克
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版  今天做了一个ScrollView的小例子(我的环境Xcode5.0.2 IOS7),结果发现无法滚动,即使设置了scrollView的contentSize还是不行,于是研究了一番,最终找到了解决方案:
在ios6之前,因为Xcode没有Autolayout的机制,所以直接使用scrollView,设置它的contentSize即可正常滚动
在ios6之后,因为Xcode引入了Autolayout的机制,所以我们设置的contentSize被修改为适合屏幕大小的值,也就是说自适应啦,因此无法滚动,解决方案如下:
直接去掉scrollView的Autolayout即可,但是这种方式不完美,毕竟Autolayout是官方推荐的,轻易去掉会引起其他问题,因此慎用。
在viewController中重载&- (void)viewDidAppear:(BOOL)animated 方法,并且设置contentSize,代码如下:
1 #import "ImaginariumViewController.h"
3 @interface ImaginariumViewController ()
4 @property (weak, nonatomic) IBOutlet UIScrollView *scrollV
5 @property (weak, nonatomic) IBOutlet UIImageView *imageV
8 @implementation ImaginariumViewController
10 - (void)viewDidAppear:(BOOL)animated
[super viewDidAppear:animated];
self.scrollView.contentSize = self.imageView.image.
self.imageView.frame = CGRectMake(0, 0, self.imageView.image.size.width, self.imageView.image.size.height);
  另外,附上我的一个小实验:
1 #import "ImaginariumViewController.h"
3 @interface ImaginariumViewController ()
4 @property (weak, nonatomic) IBOutlet UIScrollView *scrollV
5 @property (weak, nonatomic) IBOutlet UIImageView *imageV
8 @implementation ImaginariumViewController
10 - (void)viewDidLoad
[super viewDidLoad];
NSLog(@"viewDidLoad %g %g",self.scrollView.contentSize.width, self.scrollView.contentSize.height);
self.scrollView.contentSize = self.imageView.image.
17 - (void)viewWillAppear:(BOOL)animated
[super viewWillAppear:animated];
NSLog(@"viewWillAppear %g %g",self.scrollView.contentSize.width, self.scrollView.contentSize.height);
self.scrollView.contentSize = self.imageView.image.
24 - (void)viewDidAppear:(BOOL)animated
[super viewDidAppear:animated];
NSLog(@"viewDidAppear %g %g",self.scrollView.contentSize.width, self.scrollView.contentSize.height);
self.scrollView.contentSize = self.imageView.image.
self.imageView.frame = CGRectMake(0, 0, self.imageView.image.size.width, self.imageView.image.size.height);
32 - (void)didReceiveMemoryWarning
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
  实验结果,console输出:
  实验分析:
  可以看到我在viewDidLoad方法和viewWillAppear方法之后都设置了contentSize,
  但是发现viewDidLoad里设置是有效的,在viewWillAppear一开始log的值正是我们设置的700 655,
  而在viewWillAppear里设置contentSize之后,viewDidAppear又还原了contentSize为0 0,
  所以我猜测viewDidAppear才是真正执行Autolayout的地方,因此我们要设置contentSize就在viewDidAppear方法调用[super viewDidAppear:animated]之后吧。
  这个实验也算是对上面的第二种解决方案的解释吧!
阅读(...) 评论()1180人阅读
当我们在view中添加了一个scrollView并设置其约束后,再向scrollView中添加一个以scrollView为基准的约束的控件时,约束会报错,这是因为scrollView需要根据添加在其内部的子控件的宽高及与四周的距离计算出它的contentSize,也就是说内部子控件约束的添加需要遵循两个原则:
1、scrollView内部子控件的尺寸不能以scrollView的尺寸为参照
2、scrollView内部的子控件的约束必须完整
解决方法:
1、提供一个具体值的约束
2、子控件的尺寸可以参照scrollView以外其它的控件的尺寸(如控制器的view的尺寸)
另外,scrollView不能滑动的原因:
1、contentSize
这个属性,比scrollView的frame小就不会滚动
2、在self.view上添加scrollview 能正常滚动,向里面添加其他控件的时候,不能正常滚动:需要在viewDidLayoutSubviews中设置scrollView的contentSize
或在xib中使用autoLayout,也需要在viewDidLayoutSubviews中设置contentSize&span style=&white-space:&&&span style=&font-size:12&& &/span&&/span&&pre name=&code& class=&objc& style=&color: rgb(51, 51, 51); text-align:&&&span style=&font-size:14&&-(void)viewDidLayoutSubviews{
[super viewDidLayoutSubviews];
self.scrollView.contentSize = CGSizeMake(width, height);
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:7147次
排名:千里之外
原创:13篇

我要回帖

更多关于 scrollview左右滚动 的文章

 

随机推荐