【问题标题】:ios5:delete UIButton borderios5:删除UIButton边框
【发布时间】:2012-02-22 11:23:05
【问题描述】:

我的应用正在放置一个带有自定义背景图像的按钮,我不需要在它周围设置边框。 我不确定如何删除边框。 我的代码是:

  UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    button.frame=CGRectMake(100, 170, 100,30);


    UIImage *cbutton = [UIImage imageNamed:@"pdficon_small.png"];
    [button setImage:cbutton forState:UIControlStateNormal];
    UIButton *button2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [button2 addTarget:self 
               action:@selector(openWordings:)
     forControlEvents:UIControlEventTouchDown];   


    [button setTag:2];
    [self.view addSubview:button];

提前致谢。

【问题讨论】:

    标签: iphone objective-c xcode xcode4 ios5


    【解决方案1】:

    由于我使用纯白色背景,这为我解决了这个问题。我从 UIButton 继承,所以我可以使用故事板轻松分配它。

    @implementation MyButton
    
    - (id)initWithFrame:(CGRect)frame
    {
    self = [super initWithFrame:frame];
    if (self) {
        // adjust buttons -> "remove" border if we don't run on ios 7
        if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
            [self setBackgroundColor:[UIColor whiteColor]];
        }
    
    }
    return self;
    

    }

    【讨论】:

      【解决方案2】:

      我正在使用一个使用默认 iOS7 按钮的 xib 文件。我喜欢它们,除非用户使用的是 iOS6 —— 然后它们会被丑陋的 iOS6 圆形按钮击中。这是一个完整的黑客,但解决了我的问题。它只是在按钮的每一侧插入 4 层来掩盖外观。

      - (void)maskUglyIos6Border:(UIButton *)button
      {
          CALayer *layer = [CALayer layer];
          // top layer
          layer.frame = CGRectMake(0, 0, button.layer.frame.size.width, 5);
          layer.backgroundColor = [UIColor whiteColor].CGColor;
          [button.layer addSublayer:layer];
      
          // bottom layer
          CALayer *layer2 = [CALayer layer];
          layer2.frame = CGRectMake(0, button.layer.frame.size.height - 5, button.layer.frame.size.width, 5);
          layer2.backgroundColor = [UIColor whiteColor].CGColor;
          [button.layer addSublayer:layer2];
      
          // left layer
          CALayer *layer3 = [CALayer layer];
          layer3.frame = CGRectMake(0, 0, 5, button.layer.frame.size.height);
          layer3.backgroundColor = [UIColor whiteColor].CGColor;
          [button.layer addSublayer:layer3];
      
          // right layer
          CALayer *layer4 = [CALayer layer];
          layer4.frame = CGRectMake(button.layer.frame.size.width - 5, 0, 5, button.layer.frame.size.height);
          layer4.backgroundColor = [UIColor whiteColor].CGColor;
          [button.layer addSublayer:layer4];
      
      }
      

      为了保持 iOS7 的外观,我建议禁用突出显示,而是使用 showsTouchWhenHighlighted

      【讨论】:

        【解决方案3】:

        我假设您的意思是button 周围有一个边框。 要删除它,请替换行

        UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        

        有了这个

        UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
        

        您现在正在做的是创建一个标准的 RoundedRect 按钮,然后在顶部放置一个图像。 使用UIButtonTypeCustom 将创建本质上是一个“空白”按钮,允许您使用您的图像。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-02-28
          • 1970-01-01
          • 2016-02-14
          • 1970-01-01
          • 1970-01-01
          • 2016-09-26
          相关资源
          最近更新 更多