-1

我阅读了所有其他类似问题的回复,但我的项目仍然无法正常工作。有什么帮助吗?

这是我的项目。

----------------> viewController.h

#import <UIKit/UIKit.h>
@interface ViewController : UIViewController{
IBOutlet UIScrollView *scroll;
IBOutlet UIImageView *imagev;
}

----------------> viewController.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
  [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
imagev.image = [UIImage imageNamed:@"ka.jpg"];
[scroll setContentSize:CGSizeMake(700, 700)];
[scroll setScrollEnabled:TRUE];
[scroll setShowsVerticalScrollIndicator:YES];
[scroll setShowsHorizontalScrollIndicator:YES];
}

@end

一切看起来都很好,但滚动视图不会滚动..

编辑:正如他们在这里建议的那样,问题是自动布局。我修复了滚动视图

4

3 回答 3

4

我已经为您解决了问题,您可以继续使用自动布局。

在“ViewController.m”中实现以下方法

- (void)viewDidLayoutSubviews
{
    [scroll setContentSize:CGSizeMake(700, 700)];
}

你可以[scroll setContentSize:CGSizeMake(700, 700)];-viewDidLoad方法中删除。

这将为您解决问题,您可以继续使用自动布局。自动布局在 iOS 6 中有点狡猾。但在 iOS 7 中显然要好得多。

于 2013-08-07T16:01:11.560 回答
2

我相信 Autolayout 是导致问题的原因。尝试将其关闭。

  1. 在 Storyboard 或 NIB 中选择 ViewController
  2. 单击 Xcode 窗口右侧的“文件检查器”选项卡
  3. 在“界面生成器文档”部分下,取消选中“使用自动布局”
于 2013-08-07T14:28:20.197 回答
1

Objective - C 你可以在 *.m 文件的 - (void)viewDidLoad{} 函数中使用这行代码:

[scroll setContentSize:CGSizeMake(320, 800)];
[scroll setScrollEnabled:TRUE];
[scroll setShowsVerticalScrollIndicator:NO];
[scroll setShowsHorizontalScrollIndicator:YES];

为此,您需要以这种方式将 UIScrollView 的 IBOutlet 属性放入您的 *.h 文件中:

IBOutlet UIScrollView *scroll;

并从 Storyboard 连接它。

或者,

您可以在 *.m 文件中使用此方法:

-(void)viewDidLayoutSubviews { 
[scroll setContentSize:CGSizeMake(320, self.view.frame.size.height* 1.5)]; 
// this will pick height automatically from device's height and multiply it with 1.5
}

这两种解决方案都适用于 xcode-5、xcode-6、xcode-6.1、xcode-6.2

Swift: 您可以使用此 swift 代码处理类似类型的问题:

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    scrollView.contentSize = CGSize(width:10, height:10)
}
于 2015-04-17T13:52:08.067 回答