如何在iOS 7中恢复UIButton的边框?

9

我在Xcode 5中的iOS SDK 6.1中构建了一个旧项目。然而,当应用在运行iOS 7的iPhone上时,UIbutton是无边框的。 我已经检查了.xib是"Builds for">"Project Deployment Target (5.0)":

enter image description here

我该如何配置Xcode 5以构建项目并显示一个iOS 6.1风格的UIButton?

重复问题:https://dev59.com/XGMl5IYBdhLWcg3wknsT - Abdullah Md. Zubair
@AbdullahMd.Zubair 这不是重复的问题。我正在编译一个 iOS SDK 6.1 应用程序,而不是 iOS SDK 7 应用程序。 - ohho
使用 #import <QuartzCore/QuartzCore.h> 框架并设置 layerBorder = 1 - iPatel
@ohho 当你的应用在iOS7上运行时,它会在iOS7上编译。 - Abdullah Md. Zubair
请查看此答案https://dev59.com/XGMl5IYBdhLWcg3wknsT#28259540 - mtisz
3个回答

10

尝试这个

使用QuartzCore框架设置按钮的边界宽度

#import <QuartzCore/QuartzCore.h>

button.layer.borderWidth=1.0f;
button.layer.borderColor=[[UIColor blackColor] CGColor];

6
您可以创建一个类别:
- (void)setRoundedBorder:(float) radius borderWidth:(float)borderWidth color:(UIColor*)color
{
    CALayer * l = [self layer];
    [l setMasksToBounds:YES];
    [l setCornerRadius:radius];
    // You can even add a border
    [l setBorderWidth:borderWidth];
    [l setBorderColor:[color CGColor]];
}

我更喜欢使用可调整大小的图片来设置背景图像。请查看iOS 7和触摸行为的UIButton变体 - Paul Solt

1
如果您不想引入任何iOS 7的更改,则仅更改SDK是不够的。您也不应该保持Interface Builder的“Opens in”属性不变。
我将我的保留在“Xcode 4.6”,一切看起来都应该如此。
我认为您唯一可以获得的优势是新的自动布局。

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