美文网首页
YCXMenu设置透明的方法

YCXMenu设置透明的方法

作者: Felix灬泡泡 | 来源:发表于2017-03-24 16:08 被阅读0次

    YCXMenu是类似微信右上角弹出式菜单三方库。
    github地址:https://github.com/Aster0id/YCXMenuDemo_ObjC

    因项目需求,要设置YCXMenu背景透明,网上说的办法是在YCXMenu.m文件中的第301行修改alpha的值,但更改过后发现连菜单上的文字也跟着透明了。这样的效果不理想,然后就花了一点时间研究了一下,几经波折,最后终于达到了自己的目的。

    现把自己的研究成果分享给大家:

    第一步:解锁该文件

    • 点击右上角解锁按钮


      解锁.png
    • 选择Unlock解锁


      解锁.png

    第二步:设置背景透明度

    • 在第647行和664行、681行、698行设置三角形箭头的alpha值
    [[UIColor colorWithRed:R0 green:G0 blue:B0 alpha:0.9] set];
    
    • 在713、714行设置菜单背景的alpha值
    const CGFloat components[] = {
            R0, G0, B0, 0.9,
            R1, G1, B1, 0.9,
    };
    

    第三步:设置三角形箭头的大小

    修改菜单为透明后,发现三角形箭头和菜单区域有重叠,然后就修改三角形的绘制区域。
    因为我的菜单是导航栏右侧按钮点击弹出,所以我是在YCXMenuViewArrowDirectionUp中修改。
    在第636到640行,修改如下:

    const CGFloat arrowXM = _arrowPosition;
    const CGFloat arrowX0 = arrowXM - [YCXMenu arrowSize] + 1;
    const CGFloat arrowX1 = arrowXM + [YCXMenu arrowSize] - 1;
    const CGFloat arrowY0 = Y0;
    const CGFloat arrowY1 = Y0 + [YCXMenu arrowSize] + kEmbedFix - 2.75;
    

    相关文章

      网友评论

          本文标题:YCXMenu设置透明的方法

          本文链接:https://www.haomeiwen.com/subject/mjjfottx.html