2016-08-27 9 views
1

私はUIScrollViewをサブクラス化しようとしています。カスタム描画とカスタマイズされたUIViewの作成を行うためです。 UIViewの描画と作成は正常に機能しますが、ビューはスクロールしません。IOS、Swift:どうしてUIScrollViewの私のサブクラスがスクロールしないのですか?

ビューの内部高さは固定されており、initメソッドで計算します。また、intrinsticContentSizeメソッドをオーバーライドしますが、これは機能しません。

私は間違っていますか?

import UIKit 

class CustomView: UIScrollView, UIScrollViewDelegate { 
    // MARK: - layout constants 
    private var _intrinsicSize: CGSize?; 

    override init(frame: CGRect) { 
     super.init(frame: frame); 
     self.didLoad(); 
    } 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder); 
     self.didLoad(); 
    } 

    private func didLoad() { 
     self.delegate = self; 
     var result = CGSize(); 
     result.height = CGFloat(_halfHourHeight * 48); 
     result.width = 500; 
     _intrinsicSize = result; 
    } 

    override func intrinsicContentSize() -> CGSize { 
     return self._intrinsicSize!; 
    } 

    override func drawRect(rect: CGRect) { 
     super.drawRect(rect); 

     // some custom drawing here 
    } 
} 

答えて

1

スクロールビューには通常、固有のサイズはありませんが、通常は何も意味しません。フレーム、枠、コンテンツのサイズがあります。設定したいコンテンツのサイズで、境界を設定します。

コンテンツサイズは、すべてのサブビューの合計サイズであり、境界は、現在表示されているサブビューの領域にあるウィンドウです。

通常、カスタム描画コードはありませんが、可能です。あなたは通常、スクロールビューのためにその図面を行うためにサブビューを追加します。

+0

ContentSize!ありがとうございました!私はそれが私がここに行方不明だった何か単純であることを知っていた... – user884248

関連する問題