0

在下图中,我试图在每个按钮之间放置一个单字符标签,但正如第二张图片所示,当我插入标签时,按钮消失并且(如果仔细观察)最后一个按钮的文本向右移动.

你能帮我得到想要的结果吗?

没有标签的按钮 没有标签的按钮

带标签的按钮 带标签的按钮

视图控制器.h

@property(nonatomic,assign) UILabel* theSuit;

视图控制器.m

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    NSString* cards = @"AKQJT98765432";

    NSInteger yPipsOrigin = 100;
    NSInteger xPipsOrigin = 100;
    NSInteger xPipsStep = 40.0;
    NSInteger xPipsCurrent = xPipsOrigin;
    // Do any additional setup after loading the view.
    for( int x=0;x<[cards length]; x++ ){
        [cards substringWithRange:NSMakeRange(x,1)];
        UIButton *b= [UIButton buttonWithType:UIButtonTypeRoundedRect];
        xPipsCurrent += xPipsStep;
        [b setTitle:[cards substringWithRange:NSMakeRange(x,1)] forState:UIControlStateNormal];
        [b setTitle:@" " forState:UIControlStateDisabled];
        [b setFrame:CGRectMake(xPipsCurrent, yPipsOrigin, 20, 20)];
        [b setEnabled:YES];
        [b setUserInteractionEnabled:YES];
        [self.view addSubview:b];
        [b addTarget:self action:@selector(spadeButtonPressed:) forControlEvents:UIControlEventTouchUpInside];

        xPipsCurrent = xPipsOrigin + xPipsStep/2;
        for( int x=0;x<[cards length]-1; x++ ){
            xPipsCurrent += xPipsStep;
            UILabel *lab = self.theSuit;
            lab.text = @"Z";
            lab.backgroundColor = [UIColor clearColor];
            lab.center = CGPointMake(xPipsCurrent, yPipsOrigin);
            [self.view addSubview:lab];
        }
    }

}
4

1 回答 1

1
NSString* cards = @"AKQJT98765432";

NSInteger yPipsOrigin = 100;
NSInteger xPipsOrigin = 100;
NSInteger xPipsStep = 40.0;
NSInteger xPipsCurrent = xPipsOrigin;

for( int x=0;x<[cards length]; x++ )
{
    [cards substringWithRange:NSMakeRange(x,1)];
    UIButton *b= [UIButton buttonWithType:UIButtonTypeRoundedRect];
    xPipsCurrent += xPipsStep;
    [b setTitle:[cards substringWithRange:NSMakeRange(x,1)] forState:UIControlStateNormal];
    [b setTitle:@" " forState:UIControlStateDisabled];
    [b setFrame:CGRectMake(xPipsCurrent, yPipsOrigin, 20, 20)];
    [b setEnabled:YES];
    [b setUserInteractionEnabled:YES];
    [self.view addSubview:b];
    [b addTarget:self action:@selector(spadeButtonPressed:) forControlEvents:UIControlEventTouchUpInside];

    UILabel *lab = [[UILabel alloc] initWithFrame:CGRectMake(xPipsCurrent+b.frame.size.width, yPipsOrigin, 20, 20)];
    lab.text = @"Z";
    lab.textAlignment = NSTextAlignmentCenter;
    lab.backgroundColor = [UIColor clearColor];
    [self.view addSubview:lab];
}
于 2013-06-18T11:46:41.667 回答