我想要的是改变角半径,但只在顶部/底部.我是这样做的:
UIBezIErPath *usernameMaskPathWithRadiustop = [UIBezIErPath bezIErPathWithRoundedRect:username.bounds byRoundingCorners:(UIRectCornertopleft | UIRectCornertopRight) cornerRadii:CGSizeMake(4.0,4.0)];UIBezIErPath *passwordMaskPathWithRadiusBottom = [UIBezIErPath bezIErPathWithRoundedRect:password.bounds byRoundingCorners:(UIRectCornerBottomleft | UIRectCornerBottomright) cornerRadii:CGSizeMake(4.0,4.0)];CAShapeLayer *usernameMaskLayer = [[CAShapeLayer alloc] init];usernameMaskLayer.frame = username.bounds;usernameMaskLayer.path = usernameMaskPathWithRadiustop.CGPath;CAShapeLayer *passwordMaskLayer = [[CAShapeLayer alloc] init];passwordMaskLayer.frame = password.bounds;passwordMaskLayer.path = passwordMaskPathWithRadiusBottom.CGPath;[username setTextAlignment:NSTextAlignmentleft];[username setClearbuttonMode:UITextFIEldviewmodeWhileEditing];usernameLayer.shadowOpacity = 0.0;[usernameLayer setMask:usernameMaskLayer];[password setTextAlignment:NSTextAlignmentleft];[username setClearbuttonMode:UITextFIEldviewmodeWhileEditing];passwordLayer.shadowOpacity = 0.0;[passwordLayer setMask:passwordMaskLayer];
其中UITextFIEld *用户名,UITextFIEld *密码和CAShapeLayer * usernameLayer = username.layer和CAShapeLayer * passwordLayer = password.layer的定义如上所述.
问题是,在我执行上述 *** 作之后,我根本没有任何字段,实际上它们在那里但是一切都是透明的,文本和背景颜色.我不知道如何得到回来或如何解决我做错的事情.
我怎么能做我正在尝试的事情呢?
解决方法 看起来我要做的不是设置一个我必须添加为子层的掩码:[username.layer addSublayer:usernameMaskLayer];// instead of the old[usernameLayer setMask:usernameMaskLayer];
然后为了设置背景我只需要在usernameMaskLayer上设置setFillcolor.
总结以上是内存溢出为你收集整理的ios – 仅在顶部或底部具有圆角半径的UITextField全部内容,希望文章能够帮你解决ios – 仅在顶部或底部具有圆角半径的UITextField所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)