从另一个类修改UIButton的alpha属性

时间:2013-02-23 19:31:08

标签: ios objective-c uiviewcontroller uibutton alpha

我正在尝试从另一个班级更改alpha的{​​{1}}。实际上调用了设置我的UIButton的UIButton属性的函数,因为我在那里放了一个alpha,我可以看到它是如何工作的。如果你能给我任何建议,我会感激不尽。

这是我目前的代码。

ViewController.h

NSLog

ViewController.m

- (void) setAlphaToButton;

@property (strong, nonatomic) IBOutlet UIButton *myButton;

ImageViewSubclass.m

@synthesize myButton;

- (void) setAlphaToButton {
    myButton.alpha = 0.5;
    NSLog(@"Alpha set");
}

按下图像视图后,在我的控制台中,我得到:- (void) tapDetected:(UITapGestureRecognizer *)tapRecognizer { ViewController *VC = [[ViewController alloc] init]; [VC setAlphaToButton]; } 。按钮不会改变。

3 个答案:

答案 0 :(得分:2)

在您的代码中,分配并引入ViewController的实例,并在其上调用方法setAlphaToButton。然后释放视图控制器,因为您没有保留它的对象。这就是你没有看到任何效果的原因;您调用方法的ViewController实例永远不会出现在屏幕上。

目前尚不清楚你的代码应该如何工作;调用tapDetected时是否有ViewController实例?如果是这种情况,并且这是你想要改变其alpha按钮的ViewController,那么你需要引用那个 ViewController实例并在其上调用setAlphaToButton。

答案 1 :(得分:0)

您尝试设置Alpha时,您的视图未加载!您需要在viewDidLoad触发后调用此方法。你可以通过调用view来强制它,但不建议使用hackand!

MyViewController *vc = [MyViewController new];
vc.view; // this string will force view loading 
[vc setAlphaToButton];

答案 2 :(得分:0)

在imageviewsubclass中添加uiviewcontroller类的属性为

ImageViewSubclass.h
@propery (nonatomic, retain) uiviewController *parent;
ImageViewSubclass.m
@synthesize parent;

用" self"初始化它。在视图控制器类中初始化imageviewsubclass的对象并在视图上添加

ImageViewsubclass *oneObj = [ImageViewsubClass alloc] init];
oneOBj.parent = self;

对ImageviewsubClass对象的所有对象执行相同的操作。

并在

- (void) tapDetected:(UITapGestureRecognizer *)tapRecognizer {
    [parent setAlphaToButton];
}