【发布时间】:2015-08-21 01:57:24
【问题描述】:
我在UIScrollView 的子视图中有几个UILabel。我相信我已经将它设置为与我在另一个视图控制器中的功能 UIScrollView 完全一样,只有这个不会滚动。 contentSize 设置为 大于 比滚动视图 frame 大小和滚动视图 delegate 设置为 self。视图在 Interface Builder 中连接起来,UIScrollview 启用了滚动、反弹、用户交互和多点触控。孩子UIView 也启用了用户交互。这是我的代码:
.h 文件
#import <UIKit/UIKit.h>
@interface CreditsViewController : UIViewController <UIScrollViewDelegate>
@end
.m 文件
#import "CreditsViewController.h"
@interface CreditsViewController ()
@property (nonatomic, strong) IBOutlet UIScrollView *scrollView;
@property (nonatomic, strong) IBOutlet UIView *contentView;
@end
@implementation CreditsViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.scrollView.delegate = self;
_scrollView.contentSize = _contentView.frame.size;
NSLog(@"scrollview frame size, contentview frame size: %f x %f, %f x %f", _scrollView.frame.size.width, _scrollView.frame.size.height, _contentView.frame.size.width, _contentView.frame.size.height);
}
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
NSLog(@"in scrollViewWillBeginDragging");
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
NSLog(@"in scrollViewDidScroll");
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
@end
我得到 scrollview frame size, contentview frame size: 240.000000 x 128.000000, 320.000000 x 568.000000 作为日志打印输出,但我从未从委托方法中获得语句。滚动视图是视图控制器的唯一子项,因此当我尝试滚动时它应该接收触摸事件。怎么回事?
【问题讨论】:
-
检查插座连接
-
contentSize 有多大?只有当内容大小大于滚动视图大小时它才会滚动
-
contentSize为320x568,大于scrollview frame size (240x128)。
-
检查您的 XIB 中是否勾选了“用户交互启用”
-
是的,网点是正确的,并且用户交互已启用。
标签: ios objective-c uiscrollview