Я создаю пользовательский вид для отображения простой системы рейтинга звезд в моем приложении. Каждая звезда - это 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];
}
Любая помощь будет очень признательна.
Можете ли вы разместить изображение того, что вы видите? Кроме того, может потребоваться проверить, прозрачны ли изображения (.png поддерживает прозрачность) и что свойство фона фона кнопки непрозрачно (например, белый). – jefflovejapan
ANSWER: простая проблема с отключением кнопок на некоторых видах. button.enabled = NO сделает изображение кнопки слегка прозрачным. – jchmilew