小编Wal*_*GE1的帖子

如何在iOS 7.0或更高版本中获得自动调整的字体大小?

我希望在UILabel或UITextField中缩小某些文本的字体大小.这在iOS 7.0之前是可能的:如何获得UILabel(UITextView)自动调整的字体大小?.但是,sizeWithFont已在iOS 7.0中弃用.我已经尝试使用它的替换,sizeWithAttributes,但没有成功.在iOS 7.0中有没有办法做到这一点?

uikit ios

11
推荐指数
3
解决办法
3708
查看次数

来自CAEmitterLayer的初始粒子不会从emitterPosition开始

我的目标是制作类似爆炸的动画,其中许多粒子在短时间内发射.我的问题是CAEmitterLayer在开始发射时会添加"未来"粒子,使其看起来像动画已经运行了一段时间.

如何禁用或解决此问题?当我增加birthRate时,我只希望粒子从emitterPosition开始出现,而不是沿CAEmitterCell的预计生命周期中的所有点开始.任何帮助表示赞赏.

#import "EmitterView.h"

@interface EmitterView ()

@property CAEmitterLayer* emitter;

@end

@implementation EmitterView

- (void) awakeFromNib {
    [super awakeFromNib];
    self.emitter = (CAEmitterLayer*)self.layer;

    CAEmitterCell* snowflake = [CAEmitterCell emitterCell];
    snowflake.contents = (id)[[UIImage imageNamed: @"snowflake"] CGImage];
    snowflake.lifetime = 3;
    snowflake.birthRate = 1;
    snowflake.velocity = 50;
    snowflake.emissionRange = 3.1415;

    self.emitter.birthRate = 0;
    self.emitter.emitterCells = [NSArray arrayWithObject: snowflake];
    self.emitter.emitterPosition = CGPointMake(100, 100);
    self.emitter.emitterSize = CGSizeMake(0, 0);
    self.emitter.emitterShape = kCAEmitterLayerPoint;
}

+ (Class) layerClass {
    return [CAEmitterLayer class];
}

- (void) burst {
    self.emitter.birthRate = 10; …
Run Code Online (Sandbox Code Playgroud)

ios caemitterlayer caemittercell

11
推荐指数
1
解决办法
1326
查看次数

在Swift中,如何为一个类创建一个便利的初始化,在该实现中初始化的实现创建类值而不是调用现有的初始化

我觉得答案很明显,但是我无法弄清楚,这似乎是我经常遇到的问题。基本上我想做这样的事情:

extension NSData {
    convenience init(JSONObject: AnyObject) {
        do {
            self = try NSJSONSerialization.dataWithJSONObject(JSONObject, options: [])
        }
        catch {
            self = nil
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,它不能让我简单地为self赋值。我一直使用枚举来执行此操作,但不允许我使用类来执行此操作。在初始化器实现中,有什么方法可以使用初始化器实现中创建的类的实例来实现?

swift

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

在Swift中重载运算符

我正在尝试在Swift中实现Comparable协议,但编译器不喜欢我尝试重载<运算符.我检查了Apple文档和所有SO帖子,但它们都没有编译.Xcode给了我这个警告:

一行上的连续声明必须用';'分隔

并且它一直建议我在小于符号后插入分号.对我所做错的任何见解都表示赞赏.

class SomeClass: NSObject, Equatable, Comparable{

    var number: UInt32!

    override init()
    {
        super.init()
        self.number = arc4random()
    }

    func == (lhs: SomeClass, rhs: SomeClass) -> Bool
    {
        return true
    }

    func < (lhs: SomeClass, rhs: SomeClass) -> Bool
    {
        return true
    }

}
Run Code Online (Sandbox Code Playgroud)

operator-overloading swift

2
推荐指数
1
解决办法
611
查看次数