Tag: 十六进制

iOS-使用自定义颜色扩展UIColor

然后,我将打开一个颜色选择器以获取所选颜色的RGB值。 最后,我将打开Xcode并使用这些值创建颜色🙄无聊吗? 这种方法非常令人沮丧,因为每次: 我必须打开Safari并搜索图片 打开拾色器 用RGB值创建颜色并添加255的丑陋除法 我需要的是像Swift 3之前一样的UIColor.redColor()和Swift 3之前的UIColor.red这样简单的东西。 我想出了一个非常简单的解决方案:使用自定义结构扩展UIColor! 让我们跳进去吧! 🙃 第1步-创建一个新的iOS项目 创建一个新项目,这里没有新内容。 选择Swift作为语言,您就完成了。 步骤2 —阅读具有十六进制值的颜色-第1部分 在大多数情况下,指定颜色时,与具有颜色的十六进制值相反,写入RGB值很无聊。 给定十六进制值,任何本机UIColor初始化都不能给出颜色,因此我们必须编写一个。 第一步是从十六进制获取RGB值。 这需要一点点按位操作,如果需要,您可以跳过下一部分,说明我们将如何进行。 a什么是十六进制值? 我们如何使用它并提取有趣的信息? 步骤3(可选)—让我们玩十六进制 例如,在上面的纯色图像中,我最喜欢的是Terra Cotta,其十六进制值为0xE66B5B (请注意,第一个字符为零)。 我们想从此十六进制提取RGB值,但是为此,我们必须掌握并了解什么是十六进制值以及如何生成它。 在底层,十六进制值只是一个整数。 您可以通过打开Playground来快速检查以下内容: 现在,要获取十六进制值的红色部分,我们向右移动,但是有多少位? 🤔 我们看到我们必须摆脱E6右边的4个十六进制值,即蓝色和绿色,即6 , B , 5和B ,每个值编码为4位,共16位。 然后,我们以十六进制形式将其移位16位: 因为我们只想选择最后两个十六进制值(6和B),所以我们将应用以下掩码0xFF: 现在,&运算符将逐步应用: 1&1 = 1 1&0 = 0 0&1 = 0 0&0 = 0 基本上,当我们将遮罩应用于另一个值时,它将选择遮罩中为1的所有内容,并将其他所有内容为0。 如果我们回到所需的位置,则在平移和&操作后,我们最终选择了所需的零件6B […]

>>按位移位(swift 3)<<

高级运算符“ <>”用于快速将整数位移位给定的次数。 向右移一点具有将整数减半的效果,而向左移则使整数加倍。 例如: //右移 让example1 = 8 >> 1 // example1 == 4 让example2 = 8 >> 2 // example2 == 2 //向左移动 让example3 = 8 << 1 // example3 == 16 让example4 = 8 << 2 // example4 == 32 要了解移位的情况,我们首先需要了解整数如何用二进制表示。 在此示例中,我将使用一个无符号的8位整数来演示其工作原理。 了解UInt8 我在示例中使用的是UInt8,因为它很容易理解,因为我们不处理负数和仅8位。 注意 :拥有带符号的整数基本上意味着二进制签名中的一位被用来表示整数是正数还是负数。 意味着我们只剩下7个位来定义一个数字。 这使移位变得更加复杂。 在无符号整数中,所有8位都可用于定义数字。 用8位数字表示一个数字意味着我们可以表示256种不同的可能性(0–255)。 0 = 00000000 […]