Это мой код:UIImage imageNamed: всегда возвращает изображение в 1й
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self baseInit];
}
return self;
}
- (id)initWithCoder:(NSCoder *)aDecoder {
if ((self = [super initWithCoder:aDecoder])) {
[self baseInit];
}
return self;
}
- (void)baseInit {
_selectedImage = [UIImage imageNamed:@"SelectedStar"];
_deselectedImage = [UIImage imageNamed:@"DeselectedStar"];
_rating = 6.5f;
_editable = NO;
_imageViews = [[NSMutableArray alloc] init];
_maxRating = 10;
_minImageSize = CGSizeMake(5, 5);
_delegate = nil;
[self setBackgroundColor:[UIColor whiteColor]];
}
- (void)drawRect:(CGRect)rect {
NSLog(@"Star size: %@", NSStringFromCGSize(_selectedImage.size));
NSLog(@"Star scale: %f", _selectedImage.scale);
...
}
Теперь независимо от того, какой цели OS или имитатор устройства я использую, то NSLog дает мне:
2015-01-31 16:54:36.709 RatingViewDeveloper[6076:1679432] Star size: {21.5, 20}
2015-01-31 16:54:36.710 RatingViewDeveloper[6076:1679432] Star scale: 2.000000
файлы в мой images.xcassets
заключаются в следующем:
- ImageSet называется
DeselectedStar
с изображениями:DeselectedStar.png
[email protected]
[email protected]
и то же самое для ImageSet называется SelectedStar
.
Размер, который он возвращает, всегда соответствует размеру стандартного размера, а не версии 2x или даже 3x, и я не понимаю, почему вес равен 2.0. Я попробовал очистить и снова построить, но результат всегда - дерьмовое изображение 1x.
Высота и ширина изображения всегда будут 1x, 2x автоматически настроятся, разрешение удвоится, но высота и ширина не изменятся. –
Переименуйте и установите другое изображение как [email protected], и вы увидите, о чем я говорю. –