ios水平滚动菜单 - 背景按钮选择

时间:2012-05-25 13:12:41

标签: ios xcode ios5 uibutton

我尝试在scrollView中创建一个水平导航菜单。对于菜单中的每个项目,我都有不同的图像。当我选择一个项目时,我想更改此项目的背景图片,但我不知道为什么我的代码不起作用:

for (int i=0; i<12; i++) {
            UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
            UIImage *normal=[UIImage imageNamed:@"icon1"];
            UIImage *selec=[UIImage imageNamed:@"icon1down"];
            [btn setFrame:CGRectMake(i*larg, 0, 42.0, 43.0)];
            [btn setBackgroundImage:normal forState:UIControlStateNormal];
            [btn setBackgroundImage:selec forState:UIControlStateSelected];

            [scrollCat addSubview:btn];
            cx+=42.0;
    }
    [scrollCat setContentSize:CGSizeMake(cx, 43)];

此代码中有什么坏处吗?

1 个答案:

答案 0 :(得分:0)

尝试使用UIControlStateHighlighted代替UIControlStateSelected。 突出显示的是用户触摸按钮时的状态。 Selected仅用于某些控件,例如segment;一个自定义按钮(一个说,保持选中)将/可以使用选定。

来自the UIControl_Class docs at developer.apple.com(强调我的):

  

<强> UIControlStateHighlighted

     

控件的突出显示状态。控件在a时进入此状态   在跟踪期间和触摸时触摸进入和退出   事件。 ...

     

<强> UIControlStateSelected

     

控件的选定状态。 对于许多控件,此状态没有   对行为或外表的影响。但是其他子类(例如,   UISegmentedControl类可能有不同的外观取决于   在他们选择的状态。 ...