我已经尝试了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
当我尝试在模拟器上用鼠标向上滚动时,从来没有任何响应。我使用故事板创建了我的视图控制器的背景图像。改变指数会有什么不同吗?
答案 0 :(得分:2)
这是因为您添加了手势识别器。手势识别器阻止而不是通过你的触摸。 您可以使用UIScrollView解决键盘:
+(void)addScrollViewToView:(UIView *)view
{
// your code
scrollView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
}
删除UITapGestureRecognizer。
答案 1 :(得分:1)
或者是因为您的框架尺寸与您的内容尺寸相同?滚动视图仅在其内容大于其框架时滚动。
答案 2 :(得分:0)
诀窍是将视图添加到scrollview。
即:
查看> ScrollView> 查看我想要滚动
不
查看我要滚动> 滚动型。