是否可以在UI按钮中添加第二个标签?

n.e*_*ind 4 iphone cocoa-touch objective-c uibutton ios

我想知道是否可以在UIButton中添加第二个标签?我在for循环中以编程方式创建了许多按钮,并且需要引用按钮的编号(例如0,1,2)和另一个参考(整数),其中我存储对按钮链接的页面的引用至(例如22,30,49).这些数字没有关联,所以我无法确定第一个到第二个.

这就是我想要的:

for (int k=0; k < numberOfTabs; k++) // k < 4 (e.g. 3 < 4) 
{
    UIButton* btn = [[[UIButton alloc] initWithFrame:frame] autorelease];
    btn.tag = k;
Run Code Online (Sandbox Code Playgroud)

btn.tag2 = someReference;

    btn.frame = CGRectMake(-10, 0, buttonWidth, buttonHeight);
    [btn    addTarget:self
            action:@selector(tabAction:)
  forControlEvents:UIControlEventTouchUpInside];
    [btn    addTarget:self
                action:@selector(tabDelete:)
      forControlEvents:UIControlEventTouchDragOutside];
/...
Run Code Online (Sandbox Code Playgroud)

任何建议将非常感谢.

Swa*_*uke 5

不,你不能.至少不是直接的.您可以继承UIButton并添加另一个int属性,但这似乎对您想要的东西有点过分.

我认为最好只决定如何将这两个值都适合单个标签整数...

例如,如果你有pageNumber,buttonNumber你可以创建按钮标签,如:

button.tag = pageNumber*100 + buttonNumber;
Run Code Online (Sandbox Code Playgroud)

当你想要一个按钮属于哪个页面或者页面上按钮的索引是什么时,你可以对标签进行编码:

int pageNum = button.tag /100;
int buttonNum = button.tag % 100;
Run Code Online (Sandbox Code Playgroud)