2015-02-18 3 views
0

Я создаю пользовательский вид для отображения простой системы рейтинга звезд в моем приложении. Каждая звезда - это UIButton, у которой в качестве изображения установлен определенный файл изображения звезды. Все работает отлично в раскадровке, но когда я запускаю приложение на устройстве, каждое изображение звезды слегка прозрачно.Изображение кнопки прозрачно при добавлении к виду

Когда я устанавливаю цвет фона самих кнопок, они на 100% непрозрачны, но изображения все еще слегка прозрачны. Любая причина, по которой изображение этой же кнопки не будет непрозрачным? Я просто хочу, чтобы звезды всегда были непрозрачными и не зависели от фона.

Я только что присоединился к SO, так что я не хватает репутации размещать изображения, но еще вот ссылка на изображение, которое могло бы объяснить этот вопрос немного лучше: photo

Базовый код для пользовательского UIView:

- (void)layoutSubviews 
{ 
    [super layoutSubviews]; 
    self.opaque = YES; 
    [self drawStars]; 
} 

- (void)drawStars { 
    float imagePadding = self.padding; 
    CGFloat starWidth = self.selectedStarImage.size.width; 

    for (NSInteger counter = 0; counter < self.totalStars; counter++) 
    { 
     UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(counter * (imagePadding + starWidth), 0, starWidth, starWidth)]; 

     button.opaque = YES; 

     if (counter >= self.rating) { 
      [button setImage:self.starImage forState:UIControlStateNormal]; 

     } 
     else { 
      [button setImage:self.selectedStarImage forState:UIControlStateNormal]; 
     } 
     [self addSubview:button]; 
     [button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; 
     button.tag=counter; 
    } 
} 

- (void)updateStars 
{ 
    for (UIView *subview in self.subviews) { 
     [subview removeFromSuperview]; 
    } 
    [self drawStars]; 
} 

Любая помощь будет очень признательна.

+0

Можете ли вы разместить изображение того, что вы видите? Кроме того, может потребоваться проверить, прозрачны ли изображения (.png поддерживает прозрачность) и что свойство фона фона кнопки непрозрачно (например, белый). – jefflovejapan

+0

ANSWER: простая проблема с отключением кнопок на некоторых видах. button.enabled = NO сделает изображение кнопки слегка прозрачным. – jchmilew

ответ

0

Может случиться так, что альфа-вид, на который вы добавляете кнопки в качестве подзонов, может быть меньше одного.

0

Я думаю, вы должны сначала изменить изображение звезды, потому что его фон прозрачный, что является проблемой, и проверьте цвет фона кнопки. Или вы можете создать цельное прозрачное изображение и установить правильный цвет фона, который вы хотите. Эти изображения неправильные. или проверить его, используя другие изображения.

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