首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IBOutletCollection of UIButtons不会高亮显示

IBOutletCollection of UIButtons不会高亮显示
EN

Stack Overflow用户
提问于 2012-09-08 16:53:28
回答 1查看 1.2K关注 0票数 0

我有一个IBOutletCollection of UIButtons:

代码语言:javascript
复制
@property (nonatomic, retain) IBOutletCollection(UIButton) NSMutableArray *Buttons;

使用ibaction,我将在单击事件之后永久地更改突出显示的状态。

这个问题非常类似:IBOutletCollection of UIButtons - changing selected state of buttons

..。但是使用for-循环,按钮不会改变。

我还尝试了从这里选择香水的方法:Keep iPhone UIButton Highlighted

但它不起作用。

现在我的代码:

代码语言:javascript
复制
-(IBAction)toggleButtons:(id)sender
{
    NSUInteger Index = [button tag];
    [[Buttons objectAtIndex:Index] setHighlighted:YES];
}

如果我将第四行改为:

代码语言:javascript
复制
    [[Buttons objectAtIndex:3] setHighlighted:YES];

它适用于我收藏的第四个元素..。但不能用索引变量..。

你好,菲尔

更新

SelectionViewController.h

代码语言:javascript
复制
#import <UIKit/UIKit.h>

@interface SelectionViewController : UIViewController

@property (nonatomic, retain) IBOutletCollection(UIButton) NSMutableArray *Buttons;

- (IBAction)toggleButtons:(id)sender;

@end

SelectionViewController.m

代码语言:javascript
复制
#import "SelectionViewController.h"

@interface SelectionViewController ()

@end

@implementation SelectionViewController

@synthesize Buttons;


-(IBAction)toggleButtons:(id)sender
{
    UIButton *button = sender;
    NSUInteger Index = [button tag];
    [self performSelector:@selector(doHighlight:) withObject:sender afterDelay:0];

    [[Buttons objectAtIndex:Index] setHighlighted:YES];
}
- (void)doHighlight:(UIButton *)b {
    [b setHighlighted:YES];
}

Okey更新2:

现在,我已经将我的按钮声明为普通的IBOutlet,这是不起作用的:

代码语言:javascript
复制
-(IBAction)toggleButtons:(id)sender
{
    UIButton *button = sender;

    [button setHighlighted:YES];
}

但如果将其改为:

代码语言:javascript
复制
-(IBAction)toggleButtons:(id)sender
{    
    [myOutletButton setHighlighted:YES]; //Normal Outlet 
}

起作用了..。

但是为什么发送者不可能?

打招呼!

更新3

这也适用于:

代码语言:javascript
复制
for(id button in self.view.subviews)
{
    [button setHighlighted:YES];

}

如果将选择器中的延迟时间更改为1,则会突出显示状态。我在用“触地”事件..。我想在我按下按钮后就会恢复原来的状态。哪个项目是对的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-08 17:15:58

假设您的示例使用特定的整数,问题可能是标记属性没有为每个按钮正确设置。如果这些按钮是在接口生成器中创建的,则每个按钮的缺省标记值为0。要检查这一点,请单击该按钮,然后在“属性检查器”中向下滚动,查看在标记字段中输入的值

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12332677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档