将滚动视图添加到视图
Posted
技术标签:
【中文标题】将滚动视图添加到视图【英文标题】:Adding scrollview to a view 【发布时间】:2016-06-07 22:38:33 【问题描述】:我已经尝试过Adding UIScrollView to a UIViewController,当我滚动时,无论是在真实设备上的模拟器上,我都无法让我的视图向下移动。我也试过增加大小,所以我的代码如下:
+(void)addScrollViewToView:(UIView *)view
UIScrollView* scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, view.bounds.size.width * 2, view.bounds.size.height * 2)];
scrollView.backgroundColor = [UIColor clearColor];
scrollView.scrollEnabled = YES;
scrollView.pagingEnabled = YES;
scrollView.showsVerticalScrollIndicator = YES;
scrollView.showsHorizontalScrollIndicator = YES;
scrollView.contentSize = CGSizeMake(view.bounds.size.width * 2, view.bounds.size.height * 2);
[view insertSubview:scrollView atIndex:0];
//[view sendSubviewToBack:scrollView]; - commented out
在 viewDidLoad 中这样调用:
@implementation MyLoginViewController
- (void)viewDidLoad
[super viewDidLoad];
[Utils addScrollViewToView:self.view];
self.passwordTextField.secureTextEntry = YES;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(dismissKeyboard)];
[self.view addGestureRecognizer:tap];
// viewDidLoad method ends here
当我尝试在模拟器上用鼠标向上滚动时,没有任何响应。我使用情节提要创建的视图控制器有一个背景图像。更改索引会有什么不同吗?
【问题讨论】:
【参考方案1】:这是因为您添加了手势识别器。手势识别器阻止而不是通过您的触摸。 您可以使用 UIScrollView 将其设为关闭键盘:
+(void)addScrollViewToView:(UIView *)view
// your code
scrollView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
并删除 UITapGestureRecognizer。
【讨论】:
【参考方案2】:还是因为您的帧大小与您的内容大小相同?滚动视图仅在其内容大于其框架时才会滚动。
【讨论】:
【参考方案3】:诀窍是将视图添加到滚动视图。
即:
查看 > 滚动视图 > 我想滚动的视图
不是:
要滚动的视图 > 滚动视图。
【讨论】:
以上是关于将滚动视图添加到视图的主要内容,如果未能解决你的问题,请参考以下文章