微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

迅捷 – 为什么我的vfl无法正常工作?

我有以下代码,我试图实现添加到垂直滚动视图的动态图像.我想有它的约束,所以图像设置在scrollView的边框内.

然而结果是图像似乎保持其原始大小(比滚动视图大,因此图像被裁剪)

这是代码

@IBOutlet weak var myScrollView: UIScrollView!
private let lettersModel:LettersModel = LettersModel();
private var imgs = [UIImageView]();

override func viewDidLoad() {
    super.viewDidLoad()

    myScrollView.backgroundColor = UIColor.brownColor()

    for var index=0; index<1; index++
    {

        let myImage:UIImage = UIImage(named: lettersModel.getLetterat(index))!
        let myImageView:UIImageView = UIImageView()
        myImageView.image = myImage
        myImageView.contentMode = UIViewContentMode.ScaleAspectFit

        myScrollView.addSubview(myImageView)

        myImageView.translatesAutoresizingMaskIntoConstraints = false;

        myScrollView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-[myImageView]-|",options: [],metrics: nil,views:["myImageView":myImageView] ))

        imgs.append(myImageView)

    }

}

UIVcrollView内部的UIView无法调整其父级的大小.您可以在UIScrollView中创建UIView并更新layoutSubviews中的宽度,并在UIView中添加所有UIView.以下是如何执行此操作:(为此,您需要设置UIScrollView的contentSize的高度,但您还必须设置它以使其滚动.)
class MyScrollView : UIScrollView {

    let contentView = UIView()

    override init (frame : CGRect) {
        super.init(frame : frame)
        addSubview(contentView)
    }

    convenience init () {
        self.init(frame:CGRect.zero)
    }

    required init(coder aDecoder: NSCoder) {
        fatalError("This class does not support NSCoding")
    }

    override func layoutSubviews() {
        contentView.frame.size.width = frame.width
        contentView.frame.size.height = contentSize.height
        super.layoutSubviews()
    }
}

var myScrollView = MyScrollView(frame: CGRect(x: 0,y: 0,width: 400,height: 600))
var imgs = [UIImageView]();

let myImage = UIImage(named: "achtergrond")
let myImageView:UIImageView = UIImageView()
myImageView.image = myImage
myImageView.contentMode = UIViewContentMode.ScaleAspectFit

myScrollView.contentSize.height = 1000 // <-- setting the contentSize
myScrollView.contentView.addSubview(myImageView) // <-- You add the UIImageView to the contentView

myImageView.translatesAutoresizingMaskIntoConstraints = false;
myScrollView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-[myImageView]-|",views:["myImageView":myImageView] ))

imgs.append(myImageView)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐