关于控件间相互调用的小白问题

iOS 码拜 9年前 (2015-05-03) 893次浏览 0个评论
 

– (void)viewDidLoad {
    [super viewDidLoad];
    
    self.view.backgroundColor=[UIColor grayColor];
    
    UIImage *img=[UIImage imageNamed:@”a”];
    UIImageView *imgv=[[UIImageView alloc] initWithFrame:CGRectMake(0, 150, 50, 50)];
    imgv.image=img;
    
    [self.view addSubview:imgv];
    
    
    UIStepper *step=[UIStepper new];
    step.minimumValue=img.size.width/5;
    step.maximumValue=img.size.height>img.size.width?img.size.height:img.size.width;
    step.value=img.size.height;
    
    step.stepValue=20;
    [step addTarget:self action:@selector(stepchange) forControlEvents:UIControlEventValueChanged];
    
    [self.view addSubview:step];

    
    // Do any additional setup after loading the view.
}

-(void)stepchange{

}

直接上代码。
我在step的 stepchange方法上怎么调用imageview啊。。。

最好能上代码。我是小白不解释

刚自己做了个例子,希望高手指教

关于控件间相互调用的小白问题
20分
变量作用域的问题,你的UIImageView定义在viewDidLoad方法里,所以他的有效范围就在viewDidLoad方法中,你可以把他定义在类的顶部,作为类变量,然后就可以在当前的vc中用self.imgv的方式访问了
比如你的vc叫testViewController,那么在.m文件中可以这样定义
@interface WLPersonDataViewController ()
@property (nonatomic,strong) UIImageView *imgv;
@end

@implementation WLPersonDataViewController
– (void)viewDidLoad {
   …..
   self.imgv=[[UIImageView alloc] initWithFrame:CGRectMake(0, 150, 50, 50)];
    self.imgv.image=img;
}

后面的任何方法中都可以用self.imgv来访问

关于控件间相互调用的小白问题
哈哈,vc的类名忘记改一下,看明白就行
关于控件间相互调用的小白问题
20分
方法有多种,其中一种,如楼上所说,你可以将uiimageview对象定义成“成员变量”或属性,那么这个uiimageview的作用域是其所在的类。还有一种就是给uiimageview设定一个tag。在需要uiimageview的时候,也可以通过tag来找到这个uiimageview对象,如:

UIImage *img=[UIImage imageNamed:@"a"];
    UIImageView *imgv=[[UIImageView alloc] initWithFrame:CGRectMake(0, 150, 50, 50)];
    imgv.image=img;
    imgv.tag = 99;   //////设定tag值
    [self.view addSubview:imgv];

///////根据tag找到uiimageview对象
UIImageView *imgView = (UIImageView *)[self.view viewWithTag:99];

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于控件间相互调用的小白问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!