在iOS 7.1中自定义按钮形状

5

苹果在iOS 7.1中添加了按钮形状功能。但是我需要在我的应用程序中禁用它或更改其默认颜色、形状以匹配我的应用程序的UI。是否可以在不使用自定义类型按钮的情况下实现?请帮忙。


你找到解决方案了吗? - Arun
@Spynet 目前为止还没有。如果我得到了或者标记为已接受的答案,我会分享的。 - DareDevil
4个回答

3

可以对按钮进行子类化,然后尝试使用您想要的形状...

#import "YourButton.h"
#import <QuartzCore/QuartzCore.h>

@implementation YourButton

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
    }
    return self;
}



- (void)awakeFromNib
{
    [super awakeFromNib];
    CALayer *mask = [CALayer layer];
    mask.contents = (id)[[UIImage imageNamed:@"ge.png"] CGImage]; // ge is the black & white png image
    CGSize size = self.frame.size;
    mask.frame = CGRectMake(0, 0, size.width, size.height);
    self.layer.mask = mask;
    [self.layer setMasksToBounds:YES];
}

@end

为您提供参考,这里附上一个样例,请点击这里下载。


2
这些功能反映在苹果的默认按钮控件上(可能是导航栏)。您不需要担心,这些功能不是特定于应用程序而是适用于所有应用程序。
如果您想忽略它们,请不要使用默认按钮,而是使用自定义按钮。
附注:在编辑问题之后,您无法在不使用自定义实现的情况下实现此操作。
更多信息:参考

1
你可以将其设置为自定义类型,并根据你想要查看的方式使用图片。

谢谢,使用自定义图像是一种解决方案,但是否有任何方法可以更改默认的外观和感觉? - DareDevil
@DevojyotiAich 嗯,唯一的方法就是采用自定义类型 :) 如果你喜欢这个答案,那么你可以接受它。 - Mayur Prajapati

1
如果您使用 UINavigationBarUIToolbar 作为按钮的来源,那么您将获得略微较暗的工具栏色调颜色。
否则,您可以获得下划线,其颜色与文本颜色相匹配,所以我认为这不应该困扰您。保持原样即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接