UIImageView.center无法正常工作

时间:2017-07-16 19:23:24

标签: ios swift uiimageview

想知道为什么我的代码不起作用?给我一个错误:

  

类型的价值' UIImageView'没有会员' CenterSmallDot'

当拖动WhiteDot并触摸SmallDot中心时,尝试将其打印出来并打印出#34; It Worked。"

override func viewDidLoad() {
    super.viewDidLoad()

    var CenterSmallDot = SmallDot.center
}

@IBAction func handlePan(recognizer:UIPanGestureRecognizer) {
    let translation = recognizer.translation(in: self.view)

    if let view = recognizer.view {
        view.center = CGPoint(x: view.center.x + translation.x, y: view.center.y + translation.y)
    }

    recognizer.setTranslation(CGPoint.zero, in: self.view)

    if (WhiteDot.frame.intersects(SmallDot.CenterSmallDot)) {
        print("It Worked")
    }
}

enter image description here

1 个答案:

答案 0 :(得分:1)

根据我的理解,WhiteDotSmallDot都是UIImageViewCenterSmallDot是viewController的viewDidLoad func中的局部变量,因此您无法在viewDidLoad func之外的任何位置使用它。 快速解决方法是删除CenterSmallDot变量

if (WhiteDot.frame.intersects(SmallDot.center)) {
        print("It Worked")
    }

现在您还有另一个问题:intersects需要CGRect参数,而不是CGPoint。只需使用contains方法:

if (WhiteDot.frame.contains(SmallDot.center)) {
            print("It Worked")
        }

正如你似乎从Swift开始,这是一本来自Apple的好书: https://itunes.apple.com/us/book/the-swift-programming-language-swift-3-1/id881256329?mt=11

您将学习很多 - 在我们的案例变量和命名约定中,以及更一般地了解Swift如何工作。