UIScrollViewの設定を書いていきます。
このビューは指定した範囲内でスクロールすることができます。
目次
スクロールする範囲を設定する
UIScrollViewのcontentSizeというプロパティを設定します。
import UIKit
class FirstViewController : UIViewController {
    @IBOutlet var scroll : UIScrollView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        scroll.contentSize = CGSize.init(width: scroll.frame.size.width, height: scroll.frame.size.height * 3)
    }
}
指定した位置までスクロールさせる
やり方は二通りあります。
- UIScrollViewのcontentOffsetというプロパティを使う。
- UIScrollViewのsetContentOffsetというメソッドを使う。
この二つは以下のような違いがあります。
| contentOffsetを変更する | アニメーションなしで指定した位置までスクロールする | 
| setContentOffsetメソッドのanimatedをfalseにする | |
| setContentOffsetメソッドのanimatedをtrueにする | アニメーションありで指定した位置までスクロールする | 
サンプルコード(contentOffsetを使う例)
import UIKit
class FirstViewController : UIViewController {
    @IBOutlet var scroll : UIScrollView!
    var labelArray : [UILabel] = [];
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // スクロールビューのスクロール可能な範囲を設定
        scroll.contentSize = CGSize.init(width: scroll.frame.size.width, height: scroll.frame.size.height * 3)
        
        // ラベルを15個配置し、ラベルを配列に格納する
        for i in 0...15{
            let label : UILabel = UILabel.init(frame: CGRect.init(x: 0, y: i * 100, width: 200, height: 50))
            label.text = "label number \(i)"
            labelArray.append(label)
            scroll.addSubview(label)
        }
    }
    
    // ボタンを押した時に実行される処理
    @IBAction func scroll (sender : Any) {
        // 6番目のラベルの位置までスクロールする
        scroll.contentOffset = CGPoint.init(x: 0, y: (labelArray[5] as UILabel).frame.origin.y)
    }
}
サンプルコード(setContentOffsetメソッドを使ってアニメーションありでスクロールする例)
import UIKit
class FirstViewController : UIViewController {
    @IBOutlet var scroll : UIScrollView!
    var labelArray : [UILabel] = [];
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // スクロールビューのスクロール可能な範囲を設定
        scroll.contentSize = CGSize.init(width: scroll.frame.size.width, height: scroll.frame.size.height * 3)
        
        // ラベルを15個配置し、ラベルを配列に格納する
        for i in 0...15{
            let label : UILabel = UILabel.init(frame: CGRect.init(x: 0, y: i * 100, width: 200, height: 50))
            label.text = "label number \(i)"
            labelArray.append(label)
            scroll.addSubview(label)
        }
    }
    
    // ボタンを押した時に実行される処理
    @IBAction func scroll (sender : Any) {
        // 6番目のラベルの位置までスクロールする
        scroll.setContentOffset(CGPoint.init(x: 0, y: (labelArray[5] as UILabel).frame.origin.y), animated: true)
    }
}
		