0

Ici, j'ai des dessins pour une flèche personnalisée qui fonctionnera comme un bouton de partage. Il est censé être épinglé au bord inférieur, son point central étant ancré à la vue de dessous comme sur la photo.Vue de superposition autolayout d'ios sur le bord d'une autre vue (superposition), par programmation

enter image description here

Comment pourrais-je faire cela en utilisant VFL?

Voici ce que je tentais

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[_whiteSquare(160)]-10-|" 
                    options:NSLayoutFormatDirectionLeadingToTrailing 
                    metrics:nil 
                    views:elementDict]]; 


[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[_shareButton(45)]-|" 
                    options:NSLayoutFormatDirectionLeadingToTrailing 
                    metrics:nil 
                    views:elementDict]]; 


[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[_shareButton(45)]-20-|" 
                    options:NSLayoutFormatDirectionLeadingToTrailing 
                    metrics:nil 
                    views:elementDict]]; 



[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-10-[_whiteSquare]-10-|" 
                    options:NSLayoutFormatDirectionLeadingToTrailing 
                    metrics:nil 
                    views:elementDict]]; 

Lorsque les deux whiteSquare et shareButton sont ajoutés à la superview. Mais cela met juste shareButton au fond du superview, centre pas ancré au fond de whiteSquare

Répondre

1

Vous devez positionner le bouton de partage par rapport au carré blanc et non pas la vue superbe

Cela devrait faire l'affaire:

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[_whiteSquare(160)]-10-|" 
                    options:NSLayoutFormatDirectionLeadingToTrailing 
                    metrics:nil 
                    views:elementDict]]; 


[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[_whiteSquare]-22.5-[_shareButton(45)]" 
                    options: NSLayoutFormatDirectionRightToLeft 
                    metrics:nil 
                    views:elementDict]]; 


[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-10-[_whiteSquare]-10-|" 
                    options:NSLayoutFormatDirectionLeadingToTrailing 
                    metrics:nil 
                    views:elementDict]]; 

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[_whiteSquare]-22.5-[_shareButton(45)]" 
                    options:NSLayoutFormatDirectionRightToLeft 
                    metrics:nil 
                    views:elementDict]]; 
+1

cela me mettre sur la bonne voie, mais je devais changer les options à 'NSLayoutFormatDirectionLeadingToTrailing' au lieu de droite à gauche, et au lieu de 22,5 je devais utiliser des valeurs négatives, que je ne l'avais pas auparavant considérés comme – CQM

+0

Je suis heureux de ai aidé – Lefteris