让UIScrollView在iPad上正常工作

时间:2013-05-09 19:05:51

标签: ios uiscrollview

2ND UPDATE

由此线程提供 In iOS6, XCode 4.5, UIScrollView is not Scrolling, despite contentSize being set

答案已经提供!关闭故事板上的自动布局(整个过程)将修复ScrollView并允许正确滚动。传播人们这个词!

UPDATE 添加了代码。严重无法弄清楚为什么这不适用于iPad。

.h文件

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;

@end

.m文件

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
self.scrollView.contentSize = CGSize(768, 1600);
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

@end

再次只是为了澄清我正在使用故事板,我首先在ScrollView中拖动,将大小设置为标准iPad屏幕(768x1004,因为我在顶部有一个导航栏),然后在其上添加我的图像,设置它的大小(768x1600)。然后我将这两个连接到头文件(如上所示),但仍然无法让图像滚动。我的视图模式设置为“Aspect Fit”,这可能是问题吗?我尝试过其他设置而没有运气,但不是全部。

任何具体的建议都会非常感激!

原始邮寄

我知道有很多关于这个的主题,但是我有一只狗试图让ScrollView工作。我正在尝试加载768x1600的图像(仅限iPad屏幕),因此您必须垂直滚动才能看到图像的更多内容。要创建ScrollView,我使用Storyboard并将ScrollView拖到ViewController框架中,对齐它并确保启用交互。然后,在ScrollView(也在Storyboard)的顶部,我添加了我想要使用的UIImage(确保它是一个子视图)并相应地调整它的大小,然后也启用了交互。

无论我怎么努力,我都无法在Simulator或我的设备上使用它。我已经确保我的ScrollView被设置为IB中的委托,它在头文件上有一个IBOutlet,并且被合成并加载到我的实现文件中。我还确保我已经设置了contentSize;

self.scrollView.contentSize = CGSizeMake(768, 1600);

我还尝试通过代码将UIImage添加为子视图(而不是在故事板上),当我这样做时,运行模拟器时图像不会出现。除此之外,当我点击页面时,没有可用的滚动选项。

非常感谢任何人都可以给我这个帮助。如果需要代码,我会发布。

1 个答案:

答案 0 :(得分:2)

我想我只是想通了。你说你在滚动视图的上点了UIImageView

UIImageView不是用户可互动的!

尝试在Interface Builder中选择图像视图,并为图像视图设置“启用用户交互”为“是”。

如果这不起作用,我建议在代码中添加图像视图(首先从IB中删除):

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"someImage.png"]];
    self.imageView.frame = CGRectMake(0,0,768,1600);
    self.imageView.userInteractionEnable = YES;
    [self.scrollView addSubview:self.imageView];
    self.scrollView.contentSize = CGSizeMake(768, 1600);
    self.scrollView.frame = self.view.bounds;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end