У меня возникают проблемы с настройкой альфа-значения объекта подкласса UIView. Какие-либо предложения?Проблема UIView alpha
У меня есть проект UIView, свойство alpha которого я манипулирую, чтобы контролировать яркость. Я использую элемент управления UISlider, чтобы установить значение альфа собственности в подклассе UIView следующим образом:
-(id)initWithFrame:(CGRect)rect andParent:(id)theParent {
self = [super initWithFrame: rect];
if (self !=nil) {
[self setParent:theParent];
theSlider = [[UISlider alloc] initWithFrame: CGRectMake(35.0,400.0,250,0)];
theSlider.minimumValue = 0.2;
theSlider.maximumValue = 1.0;
theSlider.value = 1.0;
theSlider.continuous = YES;
UIImage *maximumValueImage = [UIImage imageNamed:@"BrightSun.png"];
UIImage *minimumValueImage = [UIImage imageNamed:@"DimSun.png"];
theSlider.maximumValueImage = maximumValueImage;
theSlider.minimumValueImage = minimumValueImage;
theSlider.hidden = NO;
[theSlider addTarget:parent action: @selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];
[self addSubview:theSlider];
}
return self;
}
Метод sliderValueChanged в родительском объекте изменяет значение альфа другого UIView подкласса объекта, OverlayView. Родительский объект является подклассом UIViewController, myViewController. Ползунок живет во втором подклассе UIView с именем SliderView.
- (void) sliderValueChanged: (id)sender {
//min = 0.2
//max = 1.0
UISlider *control = (UISlider *)sender;
float theValue = control.value;
theValue = -1.0 * (theValue - 1.0) + 0.01;
self.overlayView.alpha = theValue;
}
Это похоже на работу. Проблема возникает, когда я пытаюсь переключить свойство .hidden в UISlider. Когда я изменить свойство .hidden ДА,
theSlider.hidden = YES;
Ползунок исчезает, но альфа-значение объекта OverlayView сбрасывается в 0.0. Значение ползунка не изменяется. Я хочу, чтобы альфа-свойство OverlayView было установлено
. Метод sliderValueChanged остается неизменным при изменении скрытого свойства объекта UISlider.
Любые предложения относительно того, что я делаю неправильно? Благодарю.
? Спасибо. Я уже дал, что я пытаюсь. Метод sliderValueChanged: работает, как ожидалось. Ползунок сохраняет свое значение. sl iderValueChanged: очень просто. - (недействительными) sliderValueChanged: (ID) отправителя { \t \t // мин = 0,2 \t // макс = 1,0 \t \t UISlider * Контроль = (UISlider *) отправителя; \t \t float theValue = control.value; \t \t \t \t \t theValue = -1.0 * (theValue - 1.0) + 0.01; \t \t self.overlayView.alpha = theValue; \t \t Что-то примечание: код работает как ожидается при запуске в симуляторе iPhone. Проблема возникает при выполнении на устройстве. – 2009-07-13 18:51:22