Ios 无限出口
嗨,我正在制作一个应用程序,你可以用小玩意儿装饰圣诞树。我已经编写了代码,可以在视图中拖动它,但是我的小玩意儿用完了。我该如何制作,这样我就可以在圣诞树上放很多小玩意儿。我曾多次尝试复制一个小玩意儿,但后来将它们全部添加到代码中,但都不起作用,同时将它们全部拖走。如果你看这张照片,它里面有一些小玩意儿,但我希望它能一个一个地拖到那里去穿上Ios 无限出口,ios,swift,uipangesturerecognizer,Ios,Swift,Uipangesturerecognizer,嗨,我正在制作一个应用程序,你可以用小玩意儿装饰圣诞树。我已经编写了代码,可以在视图中拖动它,但是我的小玩意儿用完了。我该如何制作,这样我就可以在圣诞树上放很多小玩意儿。我曾多次尝试复制一个小玩意儿,但后来将它们全部添加到代码中,但都不起作用,同时将它们全部拖走。如果你看这张照片,它里面有一些小玩意儿,但我希望它能一个一个地拖到那里去穿上 如果要添加数量可变的装饰作为子视图,并希望保留对它们的引用,只需为它们设置一个数组,例如 var ornaments = [UIView]() // or
如果要添加数量可变的装饰作为子视图,并希望保留对它们的引用,只需为它们设置一个数组,例如
var ornaments = [UIView]() // or, if they're image views, `[UIImageView]()`
然后,当你把装饰物添加到你的树上时,你可以将它们添加到这个数组中,你有一个数组来跟踪它们
例如:
class ViewController: UIViewController {
@IBOutlet weak var treeImageView: UIImageView!
@IBOutlet weak var ornamentToolImageView: UIImageView!
private var currentOrnament: UIView!
private var ornaments = [UIView]()
override func viewDidLoad() {
super.viewDidLoad()
let pan = UIPanGestureRecognizer(target: self, action: #selector(dragOrnamentFromToolbar(_:)))
ornamentToolImageView.addGestureRecognizer(pan)
}
/// Gesture for dragging ornament from toolbar on to the tree
///
/// This creates new ornament and adds it to view hierarchy as well as to our array of `ornaments`
@IBAction func dragOrnamentFromToolbar(_ gesture: UIPanGestureRecognizer) {
let location = gesture.location(in: treeImageView)
switch gesture.state {
case .began:
gesture.view?.isHidden = true // temporarily hide toolbar view so it feels like we're dragging it
let image = UIImage(named: "ornament")!
currentOrnament = UIImageView(image: image)
ornaments.append(currentOrnament)
treeImageView.addSubview(currentOrnament)
fallthrough
case .changed:
currentOrnament.center = location
case .ended, .cancelled:
// when done, add new pan gesture for dragging around new ornament
gesture.view?.isHidden = false // restore toolbar view
currentOrnament.isUserInteractionEnabled = true
let pan = UIPanGestureRecognizer(target: self, action: #selector(dragExistingOrnament(_:)))
currentOrnament.addGestureRecognizer(pan)
currentOrnament = nil
default:
break
}
}
/// Gesture for dragging existing ornament
///
/// This grabs existing and allows you to drag it around
@IBAction func dragExistingOrnament(_ gesture: UIPanGestureRecognizer) {
let location = gesture.location(in: treeImageView)
switch gesture.state {
case .began:
currentOrnament = gesture.view
fallthrough
case .changed:
currentOrnament.center = location
default:
break
}
}
}
这将产生:
我需要看的不仅仅是圣诞树的图片,才能理解你在做什么。我添加了代码为什么要用Python标记这个?因为我想不出还有什么可以放的,这是一个流行的标记,可以让更多的人看到它。如果有问题,我会删除它。你不能随意挑选标记,希望得到它更多的人看到它。。。!如果有什么区别的话,那将因为标签的无关性而吸引更多的反对票。我本打算提出同样的建议,但他抢先告诉了我。我如何将我的销售渠道与之联系起来?你没有。不要使用插座,而是使用阵列来引用图像视图。很抱歉,这有点让人困惑,那么我该怎么写呢?装饰品.添加手势识别器(手势)
class ViewController: UIViewController {
@IBOutlet weak var treeImageView: UIImageView!
@IBOutlet weak var ornamentToolImageView: UIImageView!
private var currentOrnament: UIView!
private var ornaments = [UIView]()
override func viewDidLoad() {
super.viewDidLoad()
let pan = UIPanGestureRecognizer(target: self, action: #selector(dragOrnamentFromToolbar(_:)))
ornamentToolImageView.addGestureRecognizer(pan)
}
/// Gesture for dragging ornament from toolbar on to the tree
///
/// This creates new ornament and adds it to view hierarchy as well as to our array of `ornaments`
@IBAction func dragOrnamentFromToolbar(_ gesture: UIPanGestureRecognizer) {
let location = gesture.location(in: treeImageView)
switch gesture.state {
case .began:
gesture.view?.isHidden = true // temporarily hide toolbar view so it feels like we're dragging it
let image = UIImage(named: "ornament")!
currentOrnament = UIImageView(image: image)
ornaments.append(currentOrnament)
treeImageView.addSubview(currentOrnament)
fallthrough
case .changed:
currentOrnament.center = location
case .ended, .cancelled:
// when done, add new pan gesture for dragging around new ornament
gesture.view?.isHidden = false // restore toolbar view
currentOrnament.isUserInteractionEnabled = true
let pan = UIPanGestureRecognizer(target: self, action: #selector(dragExistingOrnament(_:)))
currentOrnament.addGestureRecognizer(pan)
currentOrnament = nil
default:
break
}
}
/// Gesture for dragging existing ornament
///
/// This grabs existing and allows you to drag it around
@IBAction func dragExistingOrnament(_ gesture: UIPanGestureRecognizer) {
let location = gesture.location(in: treeImageView)
switch gesture.state {
case .began:
currentOrnament = gesture.view
fallthrough
case .changed:
currentOrnament.center = location
default:
break
}
}
}