美文网首页
解决Named Color Set 无法在iOS10及以下版本运

解决Named Color Set 无法在iOS10及以下版本运

作者: StevenJ | 来源:发表于2017-11-18 17:15 被阅读0次

解决方法的原作者:

http://artwalk.github.io/2017/10/23/Batch-replace-NamedColors-to-RGB-in-Storyboard/

简单说明下

第一步,就是做个python文件,取名 NamedColors2RGB.py。

内容如下

#!/usr/bin/env python

# -*- coding: utf-8 -*-

importos, json

printos.getcwd()

colorDict = {}

# read all colorset

forroot, dirs, filesinos.walk("./"):

fordindirs:

ifd.endswith(".colorset"):

colorK = d.split(".")[0]

print"found "+ colorK

forfileinfiles:

iffile =="Contents.json":

f = open(os.path.join(root, d, file))

jd = json.load(f)

rgb = jd["colors"][0]["color"]["components"]

colorDict[colorK] ='red="{}" green="{}" blue="{}" alpha="{}" colorSpace="calibratedRGB"'.format(rgb["red"], rgb["green"], rgb["blue"], rgb["alpha"])

print""

importre

# replacing

forroot, dirs, filesinos.walk("./"):

forfileinfiles:

iffile.endswith((".storyboard",".xib")):

path = os.path.join(root, file)

print"Replacing namedColor in "+ path

f = open(path)

nf = f.read()

f.close()

nf = re.sub(r" +\n",'', nf)

nf = re.sub(r" +

fork, vincolorDict.items():

nf = re.sub(r'name="{}"'.format(k), v, nf)

f = open(path,'w')

f.write(nf)

f.close()

Then,Xcode -> Project File -> Build Phases -> Add Build Phase -> Add Run Script

if["${CONFIGURATION}"="Release"];then

python NamedColors2RGB.py

fi

第二步,Xcode -> Project File -> Build Phases -> Add Build Phase -> Add Run Script

添加下面的代码

if [ "${CONFIGURATION}" = "Release" ]; then

python NamedColors2RGB.py

fi

运行一次,IB代码就会有类似下图这种变化。之后正常发包就可以了。


需要注意的是,如果开发时候想继续使用NamedColorSet,可不要把运行py文件后的代码上传了。

相关文章

网友评论

      本文标题:解决Named Color Set 无法在iOS10及以下版本运

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