
我在另一个UIVIEw上添加了一个带有CAGradIEntLayer的UIVIEw:
public static voID AddGradIEntVIEw (CGcolor color1,CGcolor color2,UIVIEw vIEw) { UIVIEw gradIEntVIEw = new UIVIEw (vIEw.Bounds); gradIEntVIEw.Backgroundcolor = UIcolor.Green; gradIEntVIEw.autoresizingMask = UIVIEwautoresizing.All; CAGradIEntLayer gradIEnt = new CAGradIEntLayer (); gradIEnt.Frame = gradIEntVIEw.Bounds; gradIEnt.colors = new CGcolor[]{ color1,color2 }; gradIEntVIEw.Layer.InsertSublayer (gradIEnt,0); vIEw.AddSubvIEw (gradIEntVIEw);} 但结果是这样的:
问题是渐变层,他的框架不适合想要的UIVIEw.
我认为这是一个autolayout问题.
任何人都可以对我说些什么吗?
提前致谢!
P.S
上面的代码用Objective sharpIE写的但是iOS开发人员可以很容易理解;)
要更新图层框架,如果要从视图控制器更新a,或者从自定义UIVIEw子类更新layoutSubvIEws,则可以使用vIEwDIDLayoutSubvIEws.
从UIVIEwController:
- (voID)vIEwDIDLayoutSubvIEws{ [super vIEwDIDLayoutSubvIEws]; // you need to store a reference to the gradIEnt layer and gradIEnt vIEws or fetch them from the sublayers and subvIEws self.gradIEnt.frame = self.gradIEntVIEw.bounds;} UIVIEw子类:
- (voID)layoutSubvIEws{ [super layoutSubvIEws]; self.gradIEnt.frame = self.bounds;} 总结 以上是内存溢出为你收集整理的ios – Autolayout没有传递给子层全部内容,希望文章能够帮你解决ios – Autolayout没有传递给子层所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)