【发布时间】:2014-04-04 06:05:54
【问题描述】:
我有一个 UIView,其中
我的 .h 头文件
UIButton *btn;
在我的 .m 实现文件中
btn = [UIButton buttonWithType:UIButtonTypeCustom];
CGRect frame = CGRectMake(5,5,circleImage.frame.size.width-10,circleImage.frame.size.height-10);
[btn setFrame: frame];
[btn setBackgroundImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@.png",[GrideImgArray objectAtIndex:count]]] forState:UIControlStateNormal];
btn.imageView.contentMode = UIViewContentModeCenter;
[btn setTag:btnTagValue];
[btn addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[circleImage addSubview:btn];
在我的按钮点击方法中
-(void)buttonClicked:(UIButton *)sender{
//do something
}
现在我的问题是我多了一个 uibutton 并且方法是 moreOptionClicked
-(void)MoreOptionOnClick:(UIButton *)sender{
UIButton *button = (UIButton *)[self viewWithTag:sender.tag];//same tag as (btn.tag=sender.tag)
NSLog(@"%@",button.titleLabel.text);
NSLog(@"%@",button.imageView.image);
}
在此方法中,我希望之前分配按钮,即 (btn) 标题和图像,但在 moreOptionClick 这两个 NSLog 方法返回 null
IMP :- btn 标签等于 sender.tag 显示我对两个 uibutton 有相同的标签
任何答案将不胜感激
【问题讨论】:
-
嗨,我注意到您的代码中有两个问题,一个是您为两个按钮的标签属性分配了相同的值,那么 viewWithTag 方法返回的哪个是不可预测的,另一个是如果您是已经在发件人中获得按钮,那么您为什么要尝试使用 viewWithTag 创建它的引用?
-
@harishmistry 两种方法都不同,我的第一个方法是 buttonClicked:sender,用于第一个 UIButton,我的第二个方法是 MoreOptionClicked:sender,这是我的第二个 UIButton 方法。
-
好的@Visnu 那么你想在 MoreOptionOnClick: 方法中获取哪个按钮对象?
-
@harishmistry btn 这是我的第一个按钮名称。
-
@Vishu:你看过我在回答评论中给出的解释了吗?
标签: ios iphone objective-c uibutton