【问题标题】:Button changes title every time pressed每次按下按钮都会更改标题
【发布时间】:2012-04-02 11:48:37
【问题描述】:

我正在尝试这个,但是当我按下它时它不会改变,它只显示文本。 也尝试了 if else 函数,但没有结果。

.h

IBOutlet UIButton *poga1;
@property (nonatomic, retain)  UIButton *poga1;

.m

@synthesize poga1;

- (void)viewDidLoad
{
[super viewDidLoad];

[poga1 setTitle:@"My Title" forState:UIControlStateNormal];
[poga1 setTitle:@"My Selected Title" forState:UIControlStateSelected];

}

【问题讨论】:

    标签: objective-c xcode uibutton title uicontrol


    【解决方案1】:

    试试这个:如果您通过情节提要(gui 界面)添加了标题,则将其删除。

    .h //创建一个 IBOutlet 动作。如何?您右键单击该按钮并将其拖到 .h 文件中。弹出窗口,您需要单击下拉菜单并将其切换为操作 //应该是这样的

    - (IBAction)yourButton:(id)sender;
    
    .m
    //there will be a new function in your .m which is your button action function. 
    @synthesize poga1;
    
    - (void)viewDidLoad
    {
    [super viewDidLoad];
    
    [poga1 setTitle:@"My Title" forState:UIControlStateNormal];
    [poga1 setTitle:@"My Selected Title" forState:UIControlStateSelected];
    
    }
    
    - (IBAction)Start:(id)sender
    {
    

    /* 如果您希望它在每次按下时都更改文本,那么您需要一个全局计数器,每次按下按钮时都会递增。那么你将有一个 if 语句说如果计数器等于 1(按一次)然后将标题设置为 hello,如果计数器等于 7(按 7 次)将标题设置为再见。 */

     [sender setTitle:@"whatever" forState:UIControlStateNormal];
    }
    

    【讨论】:

      【解决方案2】:

      您需要捕获按钮的动作并更改标题,因为 UIButton 没有被选中的永久状态,如开关或切换。

      如果您想在用户按下时更改标题:

      -(IBAction) onClick: (id) sender {
        [(UIButton *) sender setHighlighted:YES];
      }
      

      【讨论】:

      • 但是只有在用户按住按钮时才会显示文本。我试图在每次触摸时更改文本并一直保持到再次按下按钮。
      • 那么唯一的选择就是在用户选择按钮时捕获动作并更改标题,导致按钮无法“选择”,它不是开关
      • 听起来很合乎逻辑..但我不知道如何进行该操作,请您帮忙吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-28
      • 1970-01-01
      • 2018-02-25
      • 1970-01-01
      • 2021-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多