gpt4 book ai didi

ios - UIImageView 没有隐藏?

转载 作者:行者123 更新时间:2023-11-28 08:50:10 25 4
gpt4 key购买 nike

我有一个 selectedShape,一个正方形 UIView,我通过移动其中一个 来改变它的大小,一个 UIImageView位于selectedShape的每个角,selectedShape的每条边的中间,以及selectedShape<的中心

虽然我通过移动一个corner 来改变selectedShape 的大小,但我试图隐藏其他corners感动。然而,这并没有发生 you can see here .

class DrawViewController: UIViewController {
var corners: [UIImageView] = [UIImageView]()

override func viewDidLoad() {
super.viewDidLoad()

//set up corners: set color, add pan feature, count = 9
for i in 0...8 {
let corner = UIImageView(frame: CGRectMake(0, 0, 10, 10))
corner.backgroundColor = fontColor
corners.append(corner)
corner.tag = i
corner.userInteractionEnabled = true
let pan = UIPanGestureRecognizer(target: self, action: "moveShape:")
corner.addGestureRecognizer(pan)
}

func tapShape(sender: UITapGestureRecognizer){
selectedShape = sender.view!

//place each corner in view
for corner in corners {
self.view.insertSubview(corner, aboveSubview: selectedShape!)
}

//place each corner in proper place
corners = placeCorners(corners, selectedShape: selectedShape!)
}

func placeCorners(corners: [UIImageView], selectedShape: UIView)-> [UIImageView]{
//place the diagonal corners
corners[0].center.x = selectedShape.frame.minX
corners[0].center.y = selectedShape.frame.minY
corners[2].center.x = selectedShape.frame.maxX
corners[2].center.y = selectedShape.frame.minY
corners[6].center.x = selectedShape.frame.minX
corners[6].center.y = selectedShape.frame.maxY
corners[4].center.x = selectedShape.frame.maxX
corners[4].center.y = selectedShape.frame.maxY

//place the horizontal corners
corners[1].center.x = selectedShape.frame.minX
corners[1].center.y = selectedShape.frame.midY
corners[3].center.x = selectedShape.frame.maxX
corners[3].center.y = selectedShape.frame.midY

//place the vertical corners
corners[5].center.x = selectedShape.frame.midX
corners[5].center.y = selectedShape.frame.minY
corners[7].center.x = selectedShape.frame.midX
corners[7].center.y = selectedShape.frame.maxY

//place the center corner
corners[8].center = selectedShape.center

return corners
}

func moveShape(sender: UIPanGestureRecognizer){
let corner = sender.view as! UIImageView

//resize shape
let trans = sender.translationInView(canvas)
corner.center = CGPoint(x: corner.center.x + trans.x, y: corner.center.y + trans.y)
if let shape = selectedShape{
shape.frame.size = CGSize(width: shape.frame.width + trans.x , height: shape.frame.height + trans.y)
}
sender.setTranslation(CGPointZero, inView: canvas)

//hide corners while changing size
if (sender.state == UIGestureRecognizerState.Began || sender.state == UIGestureRecognizerState.Changed){
for c in corners{
//set panned corner to panIcon
if c.tag == corner.tag{
corner.backgroundColor = UIColor.clearColor()
corner.image = UIImage(named: "panIcon")
corner.contentMode = UIViewContentMode.ScaleAspectFit
}
c.hidden == true
}
}

//unhide corners when finish changing size
if(sender.state == UIGestureRecognizerState.Ended || sender.state == UIGestureRecognizerState.Failed || sender.state == UIGestureRecognizerState.Cancelled){
for c in corners{
//set panned corner back to grey square
if c.tag == corner.tag{
corner.backgroundColor = fontColor
corner.image = nil
}
c.hidden == false
}
if let shape = selectedShape{
corners = placeCorners(corners, selectedShape: shape)
}
}
}

}

我不确定发生了什么,但我觉得这与引用有关,因为当我在代码部分将 corner 更改为 c 时在 //将平移角设置为 panIcon...

//set panned corner to panIcon
if c.tag == corner.tag{
c.backgroundColor = UIColor.clearColor()
c.image = UIImage(named: "panIcon")
c.contentMode = UIViewContentMode.ScaleAspectFit
}

...正在移动的在移动时不再更改其图标。

任何有关如何解决此问题的帮助将不胜感激!

最佳答案

我现在已经解决了@Caleb 提到的问题。

我需要使用赋值运算符 = 而不是 ==。 c.hidden = true 和 c.hidden = false

关于ios - UIImageView 没有隐藏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34442896/

25 4 0
文章推荐: css - Firefox 不会缩放 flexbox 中的图像
文章推荐: javascript - jQuery - 动画高度设置导致颤抖
文章推荐: javascript - 如何将2个值存储到cookie中
文章推荐: css - 带有 的 SVG Sprite 图