【发布时间】:2015-10-12 19:12:59
【问题描述】:
我有一个自定义按钮类,我正在我的故事板文件中设置文本。文本是一个简单的“更新电子邮件地址”,在应用的整个生命周期内都不会改变。
但是,我有一个想要添加到按钮的图像,当我这样做时,我通过以下方式在公共按钮类中的方法中设置图像:
[self setTintColor:[UIColor whiteColor]];
UIImage *icon = [UIImage imageNamed:iconName];
CGFloat iconWidth = icon.size.width;
[self setImage:icon forState:UIControlStateNormal];
[self setWidth:self.width+iconWidth*2];
[self setOriginX:self.x-iconWidth];
[self setTitleEdgeInsets:UIEdgeInsetsMake(0, -iconWidth*2, 0, 0)];
CGFloat leftMargin = 10;
CGFloat moveLeft = self.titleLabel.frame.size.width + self.titleLabel.x + leftMargin;
[self setImageEdgeInsets:UIEdgeInsetsMake(0, moveLeft , 0, 0)];
但是,通过这种方式设置,titleLabel 的宽度似乎为 0,因此图像未设置在按钮上的正确位置。
我对为什么会发生这种情况的想法可能是因为我从未以编程方式设置文本,只在情节提要中设置文本,虽然这真的没有意义,但我只知道了。
有没有人看到这里有什么问题?如果您需要任何其他代码,请告诉我,我可以发布相关信息。
【问题讨论】:
标签: ios objective-c uibutton autolayout