3

我想UILabelUIButton. 这是我的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [[self addressSearch] setDelegate:self];
    [[self worldMap] setDelegate:self];

    self.boolPushButtonTapped = YES;
    self.addressSearch.barStyle = 1;

    //Create pushButton
    self.pushButton = [UIButton buttonWithType:UIButtonTypeCustom];
    self.pushButton.frame = CGRectMake(106, 436, 110, 59);

    [self.pushButton setBackgroundImage:[UIImage imageNamed:@"pushButton2.png"] forState:UIControlStateNormal];
    [self.pushButton addTarget:self action:@selector(pushButtonTapped) forControlEvents:UIControlEventTouchUpInside];


    //Label
    self.distanceLabel = [[UILabel alloc] init];

    self.distanceLabel.text = @"test";

    [self.pushButton addSubview:self.distanceLabel];


    [self.view addSubview:self.pushButton];
}

如果我不使用alloc init我会收到一个错误,并且如果我使用该标签中的文本不会改变。错误:

*** Assertion failure in -[NSLayoutConstraint constant], /SourceCache/Foundation/Foundation-992/Layout.subproj/NSLayoutConstraint.m:560
2012-10-01 14:01:01.889 RemindMe[1116:907] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '(null)'

我想在这个按钮内添加,因为有一个动画。

有什么建议么?

4

2 回答 2

1

UIButtons 现在为您提供了很多控制权,但在可能使用自定义字体之类的东西之前,我只是制作了一个具有 UIButton 和 UILabel 的简单控件。我只是将 UILabel 放在 UIButton 的顶部,并带有 2px 左右的填充。

于 2012-10-01T04:36:09.237 回答
1

你可以试试这个:

[self.pushButton.titleLabel setText: @"anytext"];

更新的答案:

UIButton 类参考中所述,您应该使用setTitle:forState:.

然后可以在按钮的关联标签对象中完成格式化titleLabel

所以你不需要添加另一个 UILabel。

希望这可以帮助!

于 2012-10-01T06:40:48.557 回答