是否可以为UITableView添加边框样式? (不是BorderColor / BorderWidth)

时间:2012-03-29 08:19:31

标签: iphone objective-c ios uitableview border

是否可以为UITableView添加边框样式?

不仅仅是bordercolor和borderwidth。

例如凹槽边框样式?

5 个答案:

答案 0 :(得分:10)

嘿您可以使用CALayer

中提供的QuartzCore Framework为您的观点添加边框

以下链接可帮助您详细了解CALayer

Introduction to CALayers Tutorial

例如,从以上链接

// Import QuartzCore.h at the top of the file
#import <QuartzCore/QuartzCore.h>

// In viewDidLoad add the following lines
self.view.layer.backgroundColor = [UIColor orangeColor].CGColor;
self.view.layer.cornerRadius = 20.0;
self.view.layer.frame = CGRectInset(self.view.layer.frame, 20, 20);


CALayer *sublayer = [CALayer layer];
sublayer.backgroundColor = [UIColor blueColor].CGColor;
sublayer.shadowOffset = CGSizeMake(0, 5);
sublayer.shadowRadius = 5.0;
sublayer.shadowColor = [UIColor blackColor].CGColor;
sublayer.shadowOpacity = 1.0;
sublayer.frame = CGRectMake(30, 30, 128, 192);
[self.view.layer addSublayer:sublayer];

虽然上面的代码不会给你精确的凹槽效果。但你可以尝试一下。

答案 1 :(得分:7)

尝试这段代码可能对你有帮助....

在视图中编写此代码时,会加载方法并在.h文件或.m文件中导入QuartzCore框架。

[myTBL.layer setBorderWidth: 1.0];
[myTBL.layer setCornerRadius:8.0f];
[myTBL.layer setMasksToBounds:YES];
[myTBL.layer setBorderColor:[[UIColor blackColor] CGColor]];

快乐的编码.....

答案 2 :(得分:5)

最灵活的方法是让你的UITableView成为UIImageView的子视图,并使用可伸缩的图像来渲染边框样式。在UIImageView中插入UITableView,为所有边上的边框提供所需的空间。

创建一个小方形图像作为PNG,具有透明背景和任何您想要的蚀刻,阴影或边框样式。

然后使用以下方法将其转换为可伸缩的图像。这将获取图像名称并返回一个可伸缩的图像,以便在调整大小时保留样式:

- (UIImage*)makeStretchableImageNamed:(NSString*)imageName
{
    UIImage *image = [UIImage imageNamed:imageName];
    CGSize size = image.size;
    image = [image stretchableImageWithLeftCapWidth:size.width / 2.0f topCapHeight:size.height / 2.0f];

    return image;
}

使用该图像设置UIImageView的image属性,并将contentMode属性设置为UIViewContentModeScaleToFill

答案 3 :(得分:3)

你可以做的是获取纹理的图像并将该图像放在UIImageView中,然后在Imageview中添加TableView,就像它从各个方面显示图像一样......

答案 4 :(得分:1)

您无法设置样式,但可以使用图案图像和UIColor来模拟像虚线一样的图案。

UIView *item;
item.layer.borderColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"checkerboard.png"]].CGColor;

不要忘记将其添加到标题中:

#import <QuartzCore/QuartzCore.h>