- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 XCode 时遇到了一个非常具体的问题。
我的 XCode 项目中有两个目标,目标 A 和 目标 B。
它们都有一个名为 Colors.xcassets 的单独资源文件夹,其颜色名为“Primary”。 目标 A 中的“主”颜色为红色,目标 B 中的“主”颜色为蓝色。
两个目标都有 Storyboard ,其中包含使用“主要”颜色的标准 UI 元素。构建并运行目标会使界面显示目标的正确“主”颜色。
两个目标都为自定义 UIButton
分配了相同的 IBDesignable 类,该类通过创建 UIImage
作为背景来显示颜色,以便可以圆角。
当按钮初始化或设置颜色属性时,通过调用以下函数来设置背景图像:
private func refreshBackgroundWith(color: UIColor) {
let image = createImageFrom(color: color)
setBackgroundImage(image, for: UIControl.State.normal)
clipsToBounds = true
}
图像是这样创建的:
private func createImageFrom(color: UIColor) -> UIImage {
// If color is clear, return clear image
if(color == UIColor.clear) {
return UIImage()
}
UIGraphicsBeginImageContextWithOptions(CGSize(width: 1, height: 1), true, 0.0)
color.setFill()
UIRectFill(CGRect(x: 0, y: 0, width: 1, height: 1))
let image = UIGraphicsGetImageFromCurrentImageContext()!
return image
}
这通常运行良好,但是对于上述目标颜色情况,我遇到了问题。
我期望 IBDesignable 按钮根据我在 Storyboard 中分配的颜色创建背景图像,并且当我构建不同的目标时该颜色会有所不同。
当我构建并运行目标 B 时,IBDesignable 按钮上的颜色显示红色,尽管我期望蓝色。反过来也可能发生这种情况,当我构建目标 A 时,它显示蓝色而不是红色。
即使目标指示它为蓝色,颜色也在 Storyboard 和指定的颜色选择器中显示红色 - 然而,这对于其他元素来说不是问题,因为一旦运行目标,就会使用正确的颜色 -除了自定义 IBDesignable 之外的所有内容。
指定颜色选择器中显示的颜色就是 IBDesignable 中显示的颜色。每当我关闭并重新启动 XCode 时,该颜色就会随机变化。
<小时/>以前有人遇到过这个确切的或类似的问题吗?我目前想知道构建过程中的哪一点没有按预期进行。
这是否是每次我构建项目运行时未完全重建项目的问题?
任何建议都将受到高度赞赏。
最佳答案
我也遇到了同样的问题。我有 2 个目标和 2 个 xcassets 文件,每个目标一个。两者都包含名为“primary”的颜色,目标 A 为蓝色,目标 B 为橙色。使用 UIColor(named: "primary")
代码按预期工作,颜色根据所选目标而变化。
切换目标不会不会用正确的颜色更新 Interface Builder 中的 Storyboard,“primary”会保留之前的值。然而,在运行时,当设置“primary”时,行为是正确的,例如 Storyboard中的背景或色调。
唯一的异常(exception)是在 Storyboard 中将“主要”分配给 IBInspectable 值时,它会将 IBInspectable 设置为在 Interface Builder 中显示的错误颜色,即使该颜色不是在所选目标的 xcassets 文件中。
我已经确认有一个<namedColor>
添加在 Storyboard XML 底部的标记,IBInspectable 似乎使用该值而不是运行时值。当使用目标之间共享的命名颜色时,IBInspectables 没有问题。
Xcode 版本:10.3部署目标:iOS 11.0
关于ios - IBDesignable 的自定义背景颜色属性不会根据目标进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56150496/
我创建了一个基于命令行可移植脚本的工业化不可知构建系统,可用于快速构建多个依赖项目,而不必依赖特定的 IDE 或构建工厂。它是不可知的,因为它不是基于单个构建引擎。我使用 cmake 创建了第一个版本
我最初使用 Java 目标开发了一个语法(用于 TestRig 支持),然后将其移植到 Python(从 git hub 语法存储库扩展了 Python3 语法,因此需要将操作移植到 Python
我有一个以 iPhone 和 watchOS 为目标的 Xcode 项目。 iPhone 目标使用加速度计,模拟器不支持。我可以只启动 iPhone 应用程序而不启动 watch 目标吗?我从: Ca
您好,我想创建一个批处理文件,用于在 .eml 文件(目标 A)中查找某些关键字,然后删除它们所在的行。之后,我需要批处理文件将"new"文件放入(目标 B)中的单独 .eml 文件中。文件也可以是
当尝试通过 IntelliJ 运行示例 CorDapp (GitHub CorDapp) 时,我收到以下错误: Cannot inline bytecode built with JVM target
我在尝试向我的 kotlin spring 项目添加一些依赖项时遇到问题。我使用 spring boot 初始化程序来运行一个基本项目。 我的问题:如果我取消对 jackson 或 Koin 依赖项的
这是有问题的网站: http://www.onepixelroom.com/londonrefurb 当我点击关于部分后面的多个圆圈时,我希望它更改上面文本中的引号。 到目前为止,我得到它来显示 文本
单击后,我将删除两个元素 $(this) 和 $("#foo")。 目前我的代码如下所示: $(this).remove(); $("#foo").remove(); 如何在不重复自己的情况下优化它?
我有一个小脚本,可将 Markdown 文件编译为 html,并将其与一些样式表和 javascript 一起插入到模板的主体中。我有一个 GNU makefile 来完成这个: output.htm
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
一些背景知识: 在android中我们开发了同样的应用,基本上我们先开发了Android应用,现在我们创建了它的IOS版本,所以这个应用有多个客户端。在 android 中,我们实际上是使用 Andr
我想知道是否可以使用 knockout 来更改html中的目标() 我的所有其他信息都在 JavaScript 中,所以这对我来说是一个大问题。这是我的 JavaScript: var library
这个问题在这里已经有了答案: Selecting and manipulating CSS pseudo-elements such as ::before and ::after using j
我在我的有向图中添加了一堆节点和顶点,使用设置 typedef boost::adjacency_list graph; 创建 Node有一个节点名称字符串,Edge它的分数有一个整数。我试图遍历所有
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 8 年前。 Improve
如何存储我在 NSUserDefaults 中创建的 Goal 类型的对象数组? ( swift ) 代码如下: func saveGoalList ( newGoalList : [Goal] ){
Array.prototype.indexOf 和 Date.now 已在 ES5 中引入。如果我编译存储在文件 test.ts 中的以下代码,为什么 Typescript 不能转译? Date.no
我正在阅读有关属性的内容,并了解到可以使用您的代码将它们应用于不同的目标实体 -(请参阅 Attribute Targets)。 因此,查看我项目中的 AssemblyInfo.cs 文件,我可以看到
给定一个 Makefile: all: build/a build/b build/c # need to change this to all: build/* build/a:
我有一个带有多框架目标的项目- netstandard2.0;net471 . 我想为 netframework 构建解决方案和 netstandard分别。 目前我使用这个 MSBuild 命令:
我是一名优秀的程序员,十分优秀!