ios - 如何使用 Swift 构建 ScrollView?

标签 ios objective-c swift scrollview

我正在为 IOS 构建我的第一个应用程序,我正在努力寻找一种方法来使用 XCode6 上的 Swift 代码来做一个简单的 ScrollView,有人可以帮我找到解决方案吗?

我的问题是我不知道如何在我的代码中使用 ScrollView 。我已经将代码放在 ViewController.swift 中,如下所示,我希望能够在 Main.storyboard 中为 ViewController 选择 Outlet“scroller”,而不是我收到错误 *“ fatal error :无法展开 Optional.None (lldb)”* EXC_BAD_INSTRUCTION(代码=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 进行 ScrollView ,它将解决我的问题。感谢您的帮助。

尝试以旧的方式进行操作,我尝试使用 .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-Bridging-Header.h

#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)
    }

}

关于ios - 如何使用 Swift 构建 ScrollView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24223768/

相关文章:

ios - Dropzone 在 iOS 11 上失败

ios - MSMessagesAppViewController 没有正确调用 didSelect() ?

objective-c - 从日期字符串中检索年份和月份

ios - 如何实时显示用户位置。比如 Uber IOS Swift

javascript - 在 webView 上加载本地存储的文件时出现延迟

ios - 显示来自 URL 的文件

ios - 在编译时检查框架是否存在?

c++ - 从 C++ 类调用 Objective C 实例方法?

ios - 来回更改 UIImages

ios - 主线程被阻塞时避免 tableview didSelectRowatIndexPath 操作