随笔 - 262  文章 - 0  评论 - 5  阅读 - 20万

【iOS 入门开发笔记】iOS有没有android 的shape.xml

搜索了一下,iOS真没有对应库。android 的shape太强大了。xml配置方便快捷。这点apple真不如google做得好。

今天搞下图:

 

 这东西在android 分分钟搞定了。

开始着手做。

1.指定圆角

开始想加个蓝色shape背景,指定两个圆角,android 一分钟搞定,但对不起iOS没有现成方法。

需要用layer去画。

 UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.goodIcBg.bounds byRoundingCorners:UIRectCornerBottomLeft|UIRectCornerTopLeft cornerRadii:CGSizeMake(3, 3)];
      CAShapeLayer *maskLayer = [CAShapeLayer layer];
        maskLayer.frame = CGRectMake(0, 0, 22, 22);
        maskLayer.path = maskPath.CGPath;
        self.goodIcBg.layer.mask = maskLayer;
        

2.画出来了作为imageview背景吧。对不起达不到效果。iOS 没有padding说法。不能留边空白。

只好用了一个UIView作背景。再把imageview塞进去。

3.设置border作为padding .

4.border自带颜色,需求跟背景一样色。或者透明。

5.iOS 透明色:[UIColor clearColor]

复制代码
    
        self.recommGoodNameBg = [[UIView alloc]initWithFrame:CGRectMake(0  , 0, 105, 22)];
        self.recommGoodNameBg.layer.borderWidth = 4 ;
        UIColor* recommGoogdBgColor =  [UIColor colorWithRed:0 green:0 blue:0 alpha:0.7f];
        self.recommGoodNameBg.backgroundColor =recommGoogdBgColor;
        self.recommGoodNameBg.layer.borderColor =[UIColor clearColor].CGColor;
        
        UIBezierPath *recommGoogsNameMaskPath = [UIBezierPath bezierPathWithRoundedRect:self.recommGoodNameBg.bounds byRoundingCorners:UIRectCornerTopRight|UIRectCornerBottomRight cornerRadii:CGSizeMake(3, 3)];
        CAShapeLayer *recommGoogsNameMask = [CAShapeLayer layer];
        recommGoogsNameMask.frame = CGRectMake(0 , 0, 105, 22);
        recommGoogsNameMask.path = recommGoogsNameMaskPath.CGPath;
        self.recommGoodNameBg.layer.mask = recommGoogsNameMask;
        
        
        self.recommGoodName = [[UILabel alloc]init];
        self.recommGoodName.textColor = [UIColor whiteColor];
        self.recommGoodName.frame = CGRectMake(4  , 0, 93, 22);
        self.recommGoodName.text=@"华为P40 pro";
        self.recommGoodName.font =  [UIFont systemFontOfSize:12.0];
        
        [self.recommGoodNameBg addSubview:self.recommGoodName];
复制代码

 

posted on   wp7ers  阅读(223)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2018-04-21 ActivityLifecycleCallbacks
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示