【问题标题】:if/else statement referring to alpha of a UIbutton is not working引用 UIbutton 的 alpha 的 if/else 语句不起作用
【发布时间】:2012-01-24 22:48:30
【问题描述】:

如果不粘贴我的整个代码,这将很困难,但我希望我遗漏了一些简单的东西。基本上,当有一个网络链接(来自 NSDictionary)时,我想显示一个 UIbutton,当没有时,该按钮应该是不可见的。

首先我在- (void)viewDidLoad中将UIButton设置为不可见

之后是一个方法- (void)animationDidEndOnAnswer,如果有链接,按钮应该出现在该方法中。如果我只是输入button.alpha = 1;,那么它会在正确的时间显示,但我想做的是在没有网络链接的情况下让它不显示。

这是我目前在该方法中的代码:

  - (void)animationDidEndOnAnswer 
    { 
          if ([[questions questionOnScreen] objectForKey:@"link"] == @"") {
               leesmeerButton.alpha = 0;
          } 

          else {
             leesmeerButton.alpha = 1;
          }

    NSLog(@"link is %@", [[questions questionOnScreen] objectForKey:@"link"]);

}

在日志中,当没有链接时,我什么也看不到(甚至没有空格)。如果有,我会看到正确的网络链接...我也尝试过if ([[questions questionOnScreen] objectForKey:@"link"] == nil),但这也没有用。

任何帮助表示赞赏!谢谢!!

【问题讨论】:

  • 你为什么在NSString上使用==?您应该使用-isEqual:-isEqualToString:。或者在这种特殊情况下,要同时处理 @""nil,您应该只要求 -length 并与 0 进行比较。
  • 感谢凯文,我正在使用 == 因为我是新手!您的解决方案效果很好,谢谢!将来我会牢记这一点。

标签: iphone ios uibutton alpha


【解决方案1】:

问题出在这一行

if ([[questions questionOnScreen] objectForKey:@"link"] == @"")

代替那个用途

if ([[[questions questionOnScreen] objectForKey:@"link"] isEqualToString:@""] || [[questions questionOnScreen] objectForKey:@"link"] != nil)

【讨论】:

    【解决方案2】:

    您应该使用hidden 属性,而不是使用alpha。就这样:

          if ([[[questions questionOnScreen] objectForKey:@"link"]isEqualToString:@""])
               leesmeerButton.hidden = YES;
          else
               leesmeerButton.hidden = NO;
    

    或者切换YES和NO。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2023-03-13
      • 2015-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-21
      • 2022-01-16
      • 2014-09-15
      • 1970-01-01
      相关资源
      最近更新 更多