CALayer contenu sort des limites du terrain - iOS
Je suis en train de mettre en œuvre le zoom de la caméra à l'aide de CGAffinetransform
. Transformer, c'est bien, mais quand je le redimensionner à une taille plus grande, elle dépasse du cadre, j'ai attribué à la AVCaptureVideoPreviewLayer
. J'ai essayé de réglage masksToBounds
propriété YES
mais il n'a pas aidé.
Je peux le contenir à l'intérieur de son cadre?
Edit:
Ce que je veux, c'est que je peux spécifier une zone spécifique pour la prévisualisation de la caméra couche, si je demande une mise à l'échelle de transformer à elle, (c'est à dire, le cadre de l'aperçu couche est élargi), la partie de la couche à l'extérieur de la zone spécifiée est écrêtée.
Vous devez vous connecter pour publier un commentaire.
Vous devez mettre le calque que vous vous êtes mise à l'échelle à l'intérieur d'un autre calque et le masque à la place (le superlayer). La même chose travaille avec des points de vue.
I. e. Vous avez deux vues /couches:
clippingView
etscalingView
où scalingView est la sous-vue de clippingView et clippingView est le point de vue qui fait des clips à ses limites.ou à l'aide de calques
UIImageView
en raison de certaines raisons, mais qui ne compte pas je suppose) et ajout d'une sous-couche comme la previewLayer qui j'étais paramètre comme la sous-couche deself.view.layer
. J'ai mismasksToBounds' as
OUI", mais encore il sort des limites du terrainclipsToBounds
OUI. C'était tout. Doc a dit que tout le contenu de la vue se trouvent à l'intérieur de l'image spécifiée si cette propriété est définie sur Oui. En fait je n'étais jamais venu sur la propriété avant maintenant.Vous les gars sont tous en partie vrai que je l'ai trouvé mais je tenais à préciser.
Permet de dire que nous avons ajouté quelque chose comme AVCaptureVideoPreviewLayer à la vue via
[self.view.layer addSublayer:previewLayer]
[auto clipsToBounds] ne fait RIEN jusqu'à ce que vous dites est son premier calque de masque à des limites.
[self.view.layer masksToBounds];
Juste parce que votre point de vue a un cadre et n'a donc ses couches NE SIGNIFIE PAS qu'IL A des LIMITES. Si il n'a pas de limites alors il n'y a rien de masque. Alors voilà ce
self.view.layer.bounds = self.view.frame
;Heres tous ensemble..gardez à l'esprit je l'ai fait dans ma propre classe UIView donc je n'ai pas besoin d'appeler l'auto.vue.
clipsToBounds
propriété de la vue dont je suis l'ajout de la couche devrait avoir été mis àYES
.