微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iOS Swift将SVG图像添加到Android按钮

Android中,我们可以将SVG导入为Vector XML,
使用它作为Drawable,
更改SVG图标的颜色并添加到按钮

void setSvgIcnForBtnFnc(Button setBtnVar,int setSvgVar,int setClrVar,String PosVar)
{
    Drawable DevDmjVar = getDrawable(setSvgVar);
    DevDmjVar.setBounds(0,Dpx24,Dpx24);
    DevDmjVar.setColorFilter(new PorterDuffColorFilter(setClrVar,PorterDuff.Mode.SRC_IN));
    switch (PosVar)
    {
        case "Tit" : setBtnVar.setCompoundDrawables(null,DevDmjVar,null,null); break;
        case "Rit" : setBtnVar.setCompoundDrawables(null,null); break;
        case "Pit" : setBtnVar.setCompoundDrawables(null,DevDmjVar); break;
        default: setBtnVar.setCompoundDrawables(DevDmjVar,null); break;
    }
}

我如何在swift for iphone中做到这一点?

setBtnVar.setimage(<image: UIImage?>,forState: <UIControlState>)

解决方法

UPD:另见 UseYourLoaf blog post

刚刚在Erica Sadun blog post上找到iOS 11上的could use Vector Assets.

什么“矢量资产”意味着:

If you click that Box,the vector data will be shipped with your
application. Which,on the one hand,makes your application a little
bit larger,because the vector data takes up some space. But on the
other hand,will give you the opportunity to scale these images,which
might be useful in a number of different situations. So,one is,if
you kNow that this particular image is going to be used at multiple
sizes. But that might be less obvIoUs. So,one case is a symbolic
glyph that should resize with dynamic type. Since we’re thinking about
dynamic type,you should also be thinking about having glyphs that are
appearing next to type resize appropriately. Another case that’s
really not obvIoUs,is tab bar images.
… there’s a really great accessibility feature that we strongly
recommend supporting,that allows for user that have turned their
dynamic type size up. … So,we really recommend doing that to increase the usability of your app across all users

如何使用:

>将您的SVG文件转换为PDF,例如在ZamZar.com
>将您的pdf添加到Assets.xcassets

>为导入的pdf单击“保留矢量数据”.

>在UIViewController中创建UIImageView并分配像UIImage这样的pdf文件.

iOS< 11 没有本地方式来使用SVG图像. 看看Macaw

通过Cocoapod导入框架

pod "Macaw","0.8.2"

检查他们的example project:这是渲染tiger.svg的方法(位于项目目录中,而不是在Assets.xcassets文件中)

import UIKit
import Macaw

class SVGExampleView: MacawView {

    required init?(coder aDecoder: NSCoder) {
        super.init(node: SVGParser.parse(path: "tiger"),coder: aDecoder)
    }

}

当然还有其他一些第三方库:

> SwiftSVG
> Snowflake
> SVGKit Objective-C框架

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐