2017-05-08 38 views
0

我一直在環顧網絡,我無法找到一個很好的解決方案,使圖像視圖的傾斜切割適用於swift。在圖像視圖上創建傾斜切割swift

這是我想
enter image description here

正如你可以看到,我想傾斜所看到背景的形象圖。如果有人有一些想法或解決方案,那將非常感激。

+1

搜索關於 「屏蔽」 的形象 –

+0

的內容信息@ ScottThompson。我檢查了掩蔽。但我不明白如何移動和線路的工作。請幫助我 –

回答

0

屬性:

fileprivate var headerView: PostHeaderView! 
fileprivate var headerMaskLayer: CAShapeLayer! 

在viewDidLoad中():

headerMaskLayer = CAShapeLayer() 
    headerMaskLayer.fillColor = UIColor.black.cgColor 
    headerView.layer.mask = headerMaskLayer 

    updateHeaderView() 

然後使用此功能:

func updateHeaderView() { 
    let effectiveHeight = Storyboard.tableHeaderHeight - Storyboard.tableHeaderCutAway/2 

    var headerRect = CGRect(x: 0, y: -effectiveHeight, width: tableView.bounds.width, height: Storyboard.tableHeaderHeight) 

    headerView.logoImageView.alpha = 0 

    if tableView.contentOffset.y < -effectiveHeight { 
     headerRect.origin.y = tableView.contentOffset.y 
     headerRect.size.height = -tableView.contentOffset.y + Storyboard.tableHeaderCutAway/2 

     let final: CGFloat = -100 
     let alpha = min((tableView.contentOffset.y + effectiveHeight)/final, 1) 
     headerView.logoImageView.alpha = alpha 
    } 

    headerView.frame = headerRect 

    // cut away 
    let path = UIBezierPath() 
    path.move(to: CGPoint(x: 0, y: 0)) 
    path.addLine(to: CGPoint(x: headerRect.width, y: 0)) 
    path.addLine(to: CGPoint(x: headerRect.width, y: headerRect.height)) 
    path.addLine(to: CGPoint(x: 0, y: headerRect.height - Storyboard.tableHeaderCutAway)) 
    headerMaskLayer?.path = path.cgPath 
}