簡體   English   中英

水平縮放背景彩色圖像

[英]horizontally scaling a background color image

我是iOS和Swift的新手。 我正在嘗試為幻燈片右添加效果的背景圖像。 我希望該圖像在任何方向都可粘貼在屏幕的右側。 圖像將始終為設定的尺寸(現在為(382x145px)。如何調整橫向方向,以使圖像保持在右側。

這是我的自定義視圖單元類。

class CustomRouteViewCell: UITableViewCell {

    @IBOutlet var downImage: UIImageView!
    @IBOutlet var downTime: UILabel!
    @IBOutlet weak var leadingSpaceConstraint: NSLayoutConstraint!
    @IBOutlet weak var trailingSpaceConstraint: NSLayoutConstraint!

    @IBOutlet var locationTitle: UILabel!
    @IBOutlet weak var panView: UIView!

    @IBOutlet var timerLabel: UILabel!
    var indexRow: Int = 0
    var timeInterval: Int = 0

    override func awakeFromNib() {
        super.awakeFromNib()

        self.selectedBackgroundView = nil

        var img = UIImage(named: "tableSwipeArrow.png")!

        self.panView.backgroundColor = UIColor(patternImage: img)



        if self.respondsToSelector(Selector("setLayoutMargins:")) {
            layoutMargins = UIEdgeInsetsZero
        }

        if self.respondsToSelector(Selector("setPreservesSuperviewLayoutMargins:")) {
            preservesSuperviewLayoutMargins = false
        }


        var panGestureRecognizer = UIPanGestureRecognizer(target: self, action: "handlePanGesture:")
        panGestureRecognizer.delegate = self
        addGestureRecognizer(panGestureRecognizer)
    }

    func handlePanGesture(recognizer: UIPanGestureRecognizer) {

        switch(recognizer.state) {

        case UIGestureRecognizerState.Changed:

            var translation = recognizer.translationInView(recognizer.view!)
            var little = CGFloat(trailingSpaceConstraint.constant  + translation.x * -1)
            trailingSpaceConstraint.constant = fmax(0, little)
            leadingSpaceConstraint.constant = fmin(0, leadingSpaceConstraint.constant + translation.x)
            recognizer.setTranslation(CGPointZero, inView: recognizer.view!)

            timeInterval = Int(trailingSpaceConstraint.constant / 30) * 5
            timerLabel.text! = "\(timeInterval)"

        case UIGestureRecognizerState.Ended, UIGestureRecognizerState.Cancelled:

            var refreshAlert = Alarm.getReminderView(self.timeInterval, view: self.parentViewController!.view)

            self.parentViewController?.presentViewController(refreshAlert, animated: true, completion: nil)
            leadingSpaceConstraint.constant = 0
            trailingSpaceConstraint.constant = 0

            UIView.animateWithDuration(0.25, animations: { () -> Void in
                self.layoutIfNeeded()
            })

        default:
            trailingSpaceConstraint.constant = 0
            leadingSpaceConstraint.constant = 0
        }
    }

}


extension CustomRouteViewCell: UIGestureRecognizerDelegate
{
    override func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {

        if gestureRecognizer.isKindOfClass(UIPanGestureRecognizer) {

            var velocity = (gestureRecognizer as! UIPanGestureRecognizer).velocityInView(gestureRecognizer.view!)

            return fabs(velocity.x) > fabs(velocity.y)
        }

        return true;
    }
}

在此處輸入圖片說明在此處輸入圖片說明

使用自動布局鏈接圖像的位置。 您可以將背景圖片的尾部與容器視圖連接起來。

按住圖片控件,然后將尾隨屬性與主視圖鏈接

只需將常數調整為0。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM