Ich habe ein Problem, ich bin ein programmgesteuertes Erstellen von ImageView und fügen Sie es dann zu einer Centeransicht, die Art von Arbeit ist. Aber das Problem ist, dass es nicht den ganzen Platz in der Centeransicht einnimmt, es erscheint ja in der Übersicht, deckt aber nicht immer alles ein bisschen ab. Irgendeine Hilfe?iOS Swift, wie ein Imageview in einer uiview genau platziert
Der Code:
//let backgroundImage = UIImageView(frame: centerView.frame)
let backgroundImage: UIImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: self.centerView.bounds.size.width, height: self.centerView.bounds.size.height))
print("backgorundImage coordinates: \(backgroundImage.frame)")
backgroundImage.image = drawOverImage
backgroundImage.sizeThatFits(CGSizeMake(centerView.bounds.width, self.centerView.bounds.height))
//check this the image is being drawn bottom because is the fame for the previous 0.0
//backgroundImage.autoPinEdgeToSuperviewMargin(ALEdge.Top, relation: NSLayoutRelation.Equal)
//backgroundImage.contentMode = UIViewContentMode.ScaleAspectFill //too big
//backgroundImage.contentMode = UIViewContentMode.ScaleAspectFit //sama
backgroundImage.contentMode = UIViewContentMode.ScaleAspectFill
backgroundImage.clipsToBounds = true
//imageView.image = background
backgroundImage.center = view.center
let coordinatesForImage: CGRect = self.view.convertRect(backgroundImage.frame, toView: centerView)
let pointOfImage: CGPoint = backgroundImage.convertPoint(self.centerView.frame.origin, toView: backgroundImage)
print("coordinates test: \(coordinatesForImage)")
print("point x: \(pointOfImage.x)")
print("point y: \(pointOfImage.y)")
//backgroundImage.contentMode = UIViewContentMode.ScaleToFill
self.centerView.insertSubview(backgroundImage, atIndex: 0)
let pointOfImageToSuperView: CGPoint = (backgroundImage.superview?.convertPoint(backgroundImage.center, toView: self.centerView))!
print("superview imagepoint: \(pointOfImageToSuperView)")
Die Kommentare sind alles, was ich zu tun werde versuchen.
EDIT: Dies ist, was passiert.
ich ein wenig vom Boden fehlt, jetzt, wenn ich weiß nicht, die Größe des Bildes oder was könnte ich die Größe des uiview ändern das Bild passen?
Sie sind eine ganze Reihe von Rahmenmanipulations tun ... Wenn Sie es abdecken wollen, genau das Superview ('centerView') alles, was Sie tun müssen, wird die Rahmen wie in der ersten Zeile. Tun Sie nicht 'sizeThatFits'. Tun Sie nicht '* .center = * .center'. Führen Sie keine Punkt- oder Rect-Konvertierung von einer Ansicht zur anderen durch. Etc ... Ihre erste Zeile sagt die Ansicht "Seien Sie genau so groß wie diese andere Ansicht und beginnen Sie bei (0,0)". Dann fügen Sie es als Unteransicht hinzu und es wird perfekt innerhalb seiner Eltern ('centerView') orientiert sein. – Putz1103
Nun, ich habe es so, wie ich es wollte, aber gibt es eine Möglichkeit, dem CenterView zu sagen, dass ich dich so groß wie das Bild haben will, nachdem es in dir ist? –