2015-01-31 4 views
1

Это мой код: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 называется SelectedStar.

Размер, который он возвращает, всегда соответствует размеру стандартного размера, а не версии 2x или даже 3x, и я не понимаю, почему вес равен 2.0. Я попробовал очистить и снова построить, но результат всегда - дерьмовое изображение 1x.

+1

Высота и ширина изображения всегда будут 1x, 2x автоматически настроятся, разрешение удвоится, но высота и ширина не изменятся. –

+0

Переименуйте и установите другое изображение как [email protected], и вы увидите, о чем я говорю. –

ответ

1

Высота и ширина изображения всегда будут 1x, 2x автоматически настроятся, разрешение удвоится, но высота и ширина не изменятся.

Переименуйте и установите другое изображение как [email protected], и вы увидите, о чем я говорю.

+0

Вы совершенно правы, и теперь я также стал причиной, почему она всегда выглядела дерьмовой ... Я рисовал выбранные изображения поверх невыбранных, что давало им неприглядную границу, я должен это исправить, но вы являются правильными. – Pipelynx

+1

На самом деле я обнаружил, что использование 'UIGraphicsBeginImageContext (clip)' делает все с низким разрешением на сетчатых устройствах. Использование 'UIGraphicsBeginImageContextWithOptions (clip, NO, 2.0f)' решило это. – Pipelynx

Смежные вопросы