小编Mar*_*rný的帖子

Zsh提示只显示一次上一个错误代码

当前一个命令失败时,我希望我的提示显示交叉(✘).我使用以下代码:

export PROMPT=$'%(?..?\n)\n› '
Run Code Online (Sandbox Code Playgroud)

这给了我以下输出:

› echo Hello
Hello

› asjdfiasdf
zsh: command not found: asjdfiasdf
?

› 
?
Run Code Online (Sandbox Code Playgroud)

我想修改提示,以便在重新绘制提示后不重复交叉Enter(上例中的第三种情况).

可能吗?

zsh

11
推荐指数
2
解决办法
736
查看次数

声明作为子类的metatype并符合Swift 4中的协议

这不是In Swift的副本,我如何声明符合一个或多个协议的特定类型的变量?.这个问题是关于一个特定的用例,我需要一个元类型,并且如何做到这一点绝对不明显.

Swift 4允许声明一个变量,它是一个子类并符合多个协议:

var myVariable: MyClass & MyProtocol & MySecondProtocol
Run Code Online (Sandbox Code Playgroud)

我需要这样的一致性但不是实例,而是类型本身.但是对于以下语法:

var classForCell: UICollectionViewCell.Type & AdditionalHeightable.Type
Run Code Online (Sandbox Code Playgroud)

给我这个错误:

非协议,非类型类型'UICollectionViewCell.Type'不能在协议约束类型中使用

如何声明作为子类的元类型并符合Swift 4中的协议?

swift swift4

10
推荐指数
1
解决办法
1181
查看次数

覆盖UIImageView的图像getter/setter方法

我正在为UIImageView创建子类,因此每次设置图像属性时都会发生动画.以下是成功的:

import UIKit

class AnimatedImageView: UIImageView {

var img: UIImage! {
    get {
        return self.image
    }
    set {
        self.image = newValue

        UIView.animateWithDuration(0.5, delay: 0.4, usingSpringWithDamping: 0.2, initialSpringVelocity: 5.0, options: .CurveEaseIn, animations: {_ in

            self.transform = CGAffineTransformMakeScale(1.1, 1.1);

            }, completion: {_ in
                self.transform = CGAffineTransformIdentity;
        })
    }
}
Run Code Online (Sandbox Code Playgroud)

这并不奇怪.我将UIImageView子类化并添加了一个名为'img'的全新变量,该变量又修改了UIImageView的'image'属性.

问题是最终用户可能会改变AnimatedImageView的'image'属性.

import UIKit

class AnimatedImageView: UIImageView {

override var image: UIImage! {
 get {
     return self.image
 }
 set {
    self.image = newValue

    UIView.animateWithDuration(0.5, delay: 0.4, usingSpringWithDamping: 0.2, initialSpringVelocity: 5.0, options: .CurveEaseIn, animations: …
Run Code Online (Sandbox Code Playgroud)

overriding uiimageview ios swift

5
推荐指数
1
解决办法
2455
查看次数

标签 统计

swift ×2

ios ×1

overriding ×1

swift4 ×1

uiimageview ×1

zsh ×1