gpt4 book ai didi

iphone - iOS:UIButton titleLabel——它能做什么吗?

转载 作者:IT王子 更新时间:2023-10-29 07:52:14 26 4
gpt4 key购买 nike

我想制作一个类型为 UIButtonTypeCustom 的 UIButton(用于形状)。我想使用 button.titleLabel 分配标题,因为我需要指定字体。下面的代码看起来应该可以工作,但实际上没有——没有标 checkout 现,句号。

UIImage *editButtonImage = [UIImage imageNamed: @"editButton.png"];
float width = editButtonImage.size.width;
float height = editButtonImage.size.height;

UIButton *editButton = [UIButton buttonWithType: UIButtonTypeCustom];
editButton.frame = CGRectMake(0, 0, width, height);
[editButton setBackgroundImage: editButtonImage forState: UIControlStateNormal];
editButton.adjustsImageWhenHighlighted = YES;
editButton.titleLabel.text = @"Edit";
editButton.titleLabel.textColor = [UIColor whiteColor];
editButton.titleLabel.textAlignment = UITextAlignmentCenter;
editButton.titleLabel.font = [UIFont fontWithName: @"Helvetica" size: 14];
[self.view addSubview: editButton];

每个人总是说使用 setTitle:forState: 但这给了你一种我不喜欢的字体。 titleLabel 方法并未弃用——它应该可以工作。

我之前曾多次遇到过这个问题,并且总是绕过它,但我真的很想弄清楚。有什么想法吗?

最佳答案

像这样设置 titleLabeltext 属性没有任何效果。相反,在按钮上调用 -setTitle:forState::

[editButton setTitle:@"Edit" forState:UIControlStateNormal]

这是因为按钮可以针对不同的状态(例如,UIControlStateDisabledUIControlStateHighlighted)具有不同的标题。如果您没有明确指定其他状态,则为 UIControlStateNormal 控件状态设置属性将应用于所有状态。

根据 UIButton 的文档:

This class provides methods for setting the title, image, and other appearance properties of a button. By using these accessors, you can specify a different appearance for each button state.

您可以根据状态自定义标签的颜色和阴影颜色。请分别参见 -setTitleColor:forState-setTitleShadowColor:forStatetitleLabel 上的其余属性,例如 textAlignmentfont,应该可以像您现在设置的那样工作,并且应该应用于所有控件州。

具体来说,请参阅UIButtontitleLabel 属性的文档:https://developer.apple.com/documentation/uikit/uibutton/1623992-titlelabel

titleLabel本身是只读的,但这并不意味着你不能改变它自身属性的值,比如字体、换行方式等。

关于iphone - iOS:UIButton titleLabel——它能做什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4910446/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com