iOS:请问如何在使用Masnory进行自动布局的情况下进行视图的圆角定制、
迷茫
迷茫 2017-04-18 09:39:58
0
3
646

1.我选择定制圆角的方法是,利用UIBezierPath对象拿到路径,然后赋值给CAShapeLayer对象,最后利用视图的图层mask属性进行圆角定制。

UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:button.bounds
                                               byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight
                                                     cornerRadii:CGSizeMake(12, 12)];
                                                     
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];

maskLayer.frame = button.bounds;

maskLayer.path = maskPath.CGPath;

button.layer.mask = maskLayer;

2.使用Masnory进行布局,拿不到frame,所以上面的代码就因此无效。

3.我要定制的圆角是 UITableView 对象中的 heardView 和 cell,而且 两个视图的大小是自适应的,另外随着数据源的更新不同,这样的圆角的定制情况也会有所不同。那么这种情况下,使用 - setNeedsUpdateConstraints、- layoutIfNeeded 等方法拿到frame 再来进行圆角定制,也不现实。况且,性能上也不允许。

所以,我想问问,在这样的情况要求下,还可以使用什么方法来进行圆角定制。如果,你知晓的话,请在闲余之时回复一下,帮我解读解读。
谢谢啦、
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

répondre à tous(3)
小葫芦

Pour dessiner des coins arrondis, il faut préciser la taille, ou appeler la méthode maskToBounds, mais tout le monde sait que cette performance est la pire.

Je pense que nous devrions obtenir le cadre avant de dessiner et utiliser d'autres méthodes pour optimiser les problèmes de performances. (Semblable à la réécriture de drawRect pour réduire la hiérarchie des vues, etc., ou à l'utilisation d'instruments pour analyser où se trouve le goulot d'étranglement

Dans les cas extrêmes, utilisez directement le calcul dur du cadre et n'utilisez pas la mise en page automatique.

大家讲道理

La méthode de traitement dans notre projet consiste à utiliser un UIView avec un calque de coins arrondis à l'intérieur. Cette vue établit des contraintes avec la vue qui nécessite des coins arrondis et dessine une courbe de Bézier dans la sous-vue de mise en page de cette vue aux coins arrondis

阿神

En fait, le meilleur moyen est de leur ajouter directement une image aux coins arrondis, qui a les meilleures performances

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal