[Résolu] Slider et popover avec views et layers imbriqués
busterTheo
Membre
Bonjour,
ce post est la suite de celui-ci.
J'ai réussi à faire un popover qui suit un slider sans clignoter, avec des views et layers.
Le problème est que la subview se répète. C'est louche, non ?
Le code :
func showPopView() {
layerPopSlider.frame = CGRect(x: 0, y: 0, width: 250, height: 377)
layerPopSlider.backgroundColor = UIColor(red: 189/255, green: 139/255, blue: 143/255, alpha: 255/255).CGColor
layerPopSlider.cornerRadius = 12
layerPopSlider.borderColor = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.4).CGColor
layerPopSlider.borderWidth = 1
layerPopSlider.shadowColor = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.25).CGColor
layerPopSlider.shadowOpacity = 0.8
layerPopSlider.shadowOffset = CGSizeMake(2, 2)
layerPopSlider.shadowRadius = 3
viewPopSlider = UIView(frame: CGRectMake(roundSlider.frame.origin.x - 125, 320, 250, 400))
viewPopSlider.layer.addSublayer(layerPopSlider)
flecheViewSlider = FlecheView(frame: CGRectMake(120,376,20,21))
viewPopSlider.addSubview(flecheViewSlider)
self.view.addSubview(viewPopSlider)
}
Le dessin de la flèche :
import UIKit
class FlecheView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
self.backgroundColor = UIColor.clearColor()
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func drawRect(myRect: CGRect) {
let context = UIGraphicsGetCurrentContext()
CGContextSetFillColorWithColor(context, UIColor(red: 189/255, green: 139/255, blue: 143/255, alpha: 255/255).CGColor)
CGContextMoveToPoint(context, 0, 0)
CGContextAddLineToPoint(context, 10, 20)
CGContextAddLineToPoint(context, 20, 0)
CGContextAddLineToPoint(context, 0, 0)
CGContextFillPath(context)
CGContextSetLineWidth(context, 1.0)
CGContextSetStrokeColorWithColor(context, UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.4).CGColor)
CGContextMoveToPoint(context, 0, 0)
CGContextAddLineToPoint(context, 10, 20)
CGContextAddLineToPoint(context, 20, 0)
CGContextStrokePath(context)
}
}
La subView de la flèche se répète. Je fais certainement une erreur de construction (view, layer, subBiew, drawrect)
Voilà , merci si quelqu'un a une idée
Mots clés:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Bonjour à tous,
après 31 visites de ce post, sans réponses, je me suis dit qu'il fallait que je fasse un gros effort intellectuel.
Après reflexion et de beaux rêves inspirant, j'ai donc décidé de n'inclure que des loyers dans ma view, et non pas un layer et un subView.
Le côté positif, en dehors du fait que j'y suis parvenu, est surtout, que maintenant je sais dessiner, enfin, le mot est fort, dans une UIView avec Drawtect, et mettre tout ça dans une subView (ou une view, d'ailleurs), et aussi sur un layer. Pfff., c'est quand même bien laborieux, tout ça, pour un simple dessin. Enfin, bref, je donne le code ici pour ceux que ça intéresse. Encore merci aux collègues de bars pour leur contribution, sans laquelle je n'évoluerai pas.
Voici la p'tite vidéo, pour la frime.
Voici le code :
Je ne met que la fonction principale, le reste étant plus haut et dans le post d'origine (voir lien plus haut)
Merci à tous, je met résolu.
Pour les dessins, je te conseille d'aller voir du côté de cette librairie : https://github.com/AliSoftware/OHPDFImage(créée par Aligator)
En gros, tu donnes un pdf (crée avec un logiciel de dessin vectoriel ou du svg trouvé sur le web puis converti en pdf. D'ailleurs au passage, vas voir ce site... https://thenounproject.com)et lui il renvoie une UIView, à la taille que tu veux et de la couleur que tu veux.
Vraiment, je te conseille de dessiner comme ça.
Ah merci colas2,
je vais voir ça...