- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我写这段代码:
let myAttributes = [
NSAttributedStringKey.font: UIFont(name: "Avenir-HeavyOblique", size: 15.0)! ,
NSAttributedStringKey.foregroundColor: UIColor.white
]
let myAttributedString = NSAttributedString(string: textRightUpLabel!, attributes: myAttributes )
let textLayer = CATextLayer()
textLayer.string = myAttributedString
textLayer.backgroundColor = UIColor.clear.cgColor
textLayer.frame = CGRect(x: self.frame.size.width - width + textMarginRightUpLabel, y: 8, width: width, height: height)
self.layer.addSublayer(textLayer)
这很好用,但它似乎增加了 2 层如何在我的 Storyboard中显示它:
所以问题是:为什么文本“3 DAYS LEFT”显示了 2 次?一个在好的地方,另一个在 ShapeLayer 后面?
感谢您的回复
最佳答案
将 texlayer 变量移出该函数并使其成为 View 的变量。
let textLayer = CATextLayer()
将它添加到层的位置检查并查看层是否已经包含这样的 textLayer,而不是一遍又一遍地添加它。抱歉,这在手机上有点乱。当我回到我的 Mac 时会检查并清理它。
if let subLs = self.sublayers, subLs.contains(textLayer) == true{//do nothing
}else{
self.layer.addSublayer(textLayer)
}
关于ios - 使用 addSublayer() 添加 CATextLayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51304387/
我正在尝试向我的 View 添加渐变,并将以下内容添加到 drawRect: CAGradientLayer *g = [[CAGradientLayer alloc]init]; g.frame =
我无法将 CAlayer 中的图像显示在 imageView 中。我可以让它与 CAGradientLayer 一起工作,但是当我将它更改为带有图像的 CALayer 时,似乎没有任何效果。如果框架被
我认为当我像这样添加一个 View 作为 subview 时: UIView* view = [[UIView alloc] init]; [self addSubview:view]; [view
我正在学习有关 Core Animation 书籍的教程,并尝试执行以下操作。 @interface ViewController () @property (nonatomic, weak) IBO
我写这段代码: let myAttributes = [ NSAttributedStringKey.font: UIFont(name: "Avenir-HeavyOblique", siz
如何在同一个 UIView 中正确使用这两个? 我有一个自定义子类 CALayer,我在其中绘制了 drawInContext 中的图案 我有另一个,我在其中设置了一个覆盖 PNG 图像作为内容。 我
问题 如何为您的图层创建单独的上下文并将该上下文合并到 super 图层中? 为什么我要这样做 我想将 View 层的绘制抽象为单独的对象/文件。我想用图层构建一个 View ,然后将其放置在另一个
当我按照以下方式编写代码时.. - (void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentConte
当我绘制图形并将其添加到 Controller 的 View 时,图形显示正确。 CAShapeLayer *shapeLayer = [CAShapeLayer layer]; self.curre
我正在为 CAGradient 设置动画 let gradientChangeAnimation = CABasicAnimation(keyPath: "colors") gradientC
下面是我用来通过 -addSublayer 将 UIButton 添加到层的代码: CAGradientLayer * tile = [[tile alloc] init]; UIButto
我是一名优秀的程序员,十分优秀!