Ios 如何使用Swift构建滚动视图?

Ios 如何使用Swift构建滚动视图?,ios,objective-c,swift,scrollview,Ios,Objective C,Swift,Scrollview,我正在为IOS构建我的第一个应用程序,我正在努力寻找一种在XCode6上使用Swift代码进行简单滚动查看的方法,请问有人能帮我找到解决方案吗 我的问题是,我不知道如何使scrollview在我的代码中工作。我已经在ViewController.swift中输入了下面可以看到的代码,我希望能够为ViewController选择Main.storyboard中的Outlet scroller,而不是这个,我收到了错误*致命错误:无法展开可选。None lldb*EXC_BAD_指令代码=EXC_1

我正在为IOS构建我的第一个应用程序,我正在努力寻找一种在XCode6上使用Swift代码进行简单滚动查看的方法,请问有人能帮我找到解决方案吗

我的问题是,我不知道如何使scrollview在我的代码中工作。我已经在ViewController.swift中输入了下面可以看到的代码,我希望能够为ViewController选择Main.storyboard中的Outlet scroller,而不是这个,我收到了错误*致命错误:无法展开可选。None lldb*EXC_BAD_指令代码=EXC_1386_INVOP,子代码=0x0

我有一些ViewController屏幕,其中一个我放了一个ScrollView,我想让它使用Swift工作

我被困在这个问题上:

import UIKit

class ViewController: UIViewController {

    @IBOutlet var scroller:UIScrollView

    override func viewDidLoad() {
        super.viewDidLoad()
        scroller.scrollEnabled = true;
        scroller.contentSize = CGSizeMake(320, 624);
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}
我认为,如果有人能提供一个简单的例子,如何使用swift进行滚动查看,它将解决我的问题。任何帮助都将不胜感激

尝试以旧式方式执行此操作我尝试使用.m和.h文件执行此操作:

ViewController.m

#import "Amigo-Bridging-Header.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    [scroller setScrollEnabled:YES];
    [scroller setContentSize:CGSizeMake(320, 624)];
    // Do any additional setup after loading the view, typically from a nib.
}

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

@end
Amigo桥接头

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController {
    IBOutlet UIScrollView *scroller;
}
@end

干杯

让我们试一试。需要注意的一点是,我还没有找到将self.view降级为UIScrollView的方法,因此您不能像self.view.contentOffset这样调用

import UIKit

class ScrollingViewController : UIViewController {
    // Create a scrollView property that we'll set as our view in -loadView
    let scrollView = UIScrollView(frame: UIScreen.mainScreen().bounds)

    override func loadView() {
        // calling self.view later on will return a UIView!, but we can simply call 
        // self.scrollView to adjust properties of the scroll view:
        self.view = self.scrollView

        // setup the scroll view
        self.scrollView.contentSize = CGSize(width:1234, height: 5678)
        // etc...
    }

    func example() {
        let sampleSubView = UIView()
        self.view.addSubview(sampleSubView) // adds to the scroll view

        // cannot do this:
        // self.view.contentOffset = CGPoint(x: 10, y: 20)
        // so instead we do this:
        self.scrollView.contentOffset = CGPoint(x: 10, y: 20)
    }

}

您的插座未连接。从

在Swift中声明出口时,编译器会自动将该类型转换为弱隐式展开可选类型,并为其指定初始值nil。实际上,编译器将@IBOutlet var name:Type替换为@IBOutlet弱var name:Type!=零


如果未连接此值,它将保持为零,并且在访问该值时会出现运行时错误。

请在问题中提供更多说明。否则,它将被删除为低质量Hi T.S.我在其上添加了更多说明。请告诉我是否足够。您确定插座已连接吗?该错误表明您在隐式展开的可选选项中有一个None值,而不是任何特定的滚动视图问题。我如何连接插座?谢谢您的拍摄,但我认为这不是我试图做的。嗨,Jrturton,这解释了我为什么会遇到问题。我想我已经有这本书了。谢谢分享。但我们如何才能更正代码以获得出口?我需要用.mObjective C文件进行桥接吗?我在ViewController.m中有相同的代码,在桥头文件中有一个引用。代码没有问题。您需要确保已在interface builder中连接插座。选择view controller对象并检查插座是否已连接。哇,好吧,问题恰恰是这样的,如果我转到interface builder并选择view controller并尝试连接可用的插座,滚动条没有出现听起来好像您没有在identity inspector中正确设置视图控制器的类。谢谢,现在我在interface builder中有了它,并连接了它,但我仍然收到错误致命错误:无法展开可选。无lldb EXC_BAD_指令代码=EXC_1386_INVOP,当我运行程序时,subcode=0x0。
 @IBOutlet weak var scrollView: UIScrollView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        // setup the scroll view
        self.scrollView.contentInset = UIEdgeInsetsMake(0, 0, 200, 0);

    }