在我的iOS应用中,我有一个constants.h类,其中定义了kBorderWidth。对于视网膜显示器,我希望将其设置为.5,以使边框的宽度为1像素,而在非视网膜显示器上,我希望其为1,以使其边框厚度保持为1像素而不小于像素的厚度。这是我现在的代码:
#define IS_RETINA ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] && ([UIScreen mainScreen].scale == 2.0))
#if __IS_RETINA == 1
#define kBorderWidth .5
#else
#define kBorderWidth 1
#endif
编译就很好,但是导致kBorderWidth为1。如何解决此问题,使其完成我想要的工作?
最佳答案
我确定的解决方案是Lanorkin建议的解决方案,它的定义如下:
#define kBorderWidth (1.0 / [UIScreen mainScreen].scale)
这是面向 future 的证明,非常简单,并且可以在我已经设置的constants.h文件中工作。