生成独特的uibutton标签

时间:2015-10-12 21:14:45

标签: ios swift

我认为这是不可能的,但我希望有人知道如何使用独特的int或字符串作为uibutton标记

理想情况下,我想要这样的事情:

@shadow: 6px 6px 10px rgba(0,0,0,0.2);

.shadow {
    box-shadow: @shadow inset;
}

令人沮丧的swift只允许int作为标签

2 个答案:

答案 0 :(得分:0)

如果您想为视图的标记分配一个唯一的整数,就像您所描述的那样,您可以执行以下操作:

myButton.tag = Int(arc4random())

这会给你一个非常随机的标签,不太可能发生碰撞。

这几乎可以肯定是对更广泛背景的不良解决方案。如果添加UUID实际上是正确的,请考虑继承UIButton并添加唯一标识符属性而不是使用标记。

正如@dimpiax建议的那样,考虑将对按钮的引用存储为属性,很可能是一组按钮,而不是使用标识符,然后返回查找相关按钮。

答案 1 :(得分:0)

你可以用助手类做一个技巧,然后像这样做;

let uuid:Int = NSUUIDI.UUIDInt; // NSUUIDI() Not required here
myBTN.tag = uuid;

//Reverse (String value from tag)
println(NSUUIDI.UUIDStringFromInt(myBTN.tag));

Helper Class here;

//NSUUIDI.swift
class NSUUIDI:NSObject {

    private static var _uUIDs:[String] = [String]();

    class var UUIDInt:Int {
        get {
            let uUIDInt:Int = NSUUIDI._uUIDs.count;
            NSUUIDI._uUIDs.append(NSUUID().UUIDString);
            return uUIDInt;
        }
    }

    class func UUIDStringFromInt(uUID:Int) -> String {
        return (uUID < NSUUIDI._uUIDs.count) ? NSUUIDI._uUIDs[uUID]:"\(uUID)";
    }
}