UILabel背景图像在iPhone 5及以下版本上消失



我正在构建一个日历应用程序,并有一系列显示日期的UILabels。对于任何有事件的日期,我通过用以下代码更改标签背景图像,在日期下面放一个小点:

label.backgroundColor = [UIColor colorWithPatternImage:newImage];

这在iPhone 5s及以上版本上运行良好,但图像不会在iPhone 5或任何早期的iPhone上显示。

我在Images.xcassets中的图像大小会有问题吗?

我目前有1个40x40,2个80x80,3个和120x120。

不能向UILabel添加背景图像,但可以将UIImageView作为子视图添加到UILabel。

UIImageView *labelBackground = [[UIImageView alloc] 
initWithImage:[UIImage imageNamed:@"mybg.png"]];
[myLabel addSubview:labelBackground];

我发现这与图像大小无关。按照@a4arpan的建议,从使用colorWithPatternImage更改为添加子视图后,我注意到iPhone 4s和5的日历下的表视图中也没有显示日期的事件信息(日期、时间等)。

为了确定我是否应该显示事件日期的点,我检查了是否有语句,即:

if ([label.text == dateOfEvent]...)

我错过了这是字符串的事实,它应该读作:

if ([label.text isEqualToString: dateOfEvent]

一旦我做出了改变,它就开始通过模拟器在所有可用的iPhone上工作。非常奇怪的是,这在iPhone 5s、6等模拟器上从来都不是问题,但在4s和5上却成了问题。

最新更新