我有一个带有一些图像的UIViewController。我需要在图像之间绘制一些水平和垂直线。实际上它就像一个层次结构视图。添加带有背景颜色的子视图是最好的方法吗?
答案 0 :(得分:4)
您有3种基本方法:
3可能是最容易实现的,但不是最优雅的,1在内存方面最强大,因为您也可以使用drawInRect将图像绘制到相同的图形上下文中。这会将视图层次结构折叠为单个视图。
答案 1 :(得分:3)
您可以按照上面的说法使用图层来完成,或者只是因为您只需要线条,请使用UIViews
就像这样
for(i=0;i<numberOfLine*heightofImage;i+=heightOfImage) {
UIView *horizontalLine=[[UIView alloc]initWithFrame:CGRectMake(x, i, height, 1)];
[self.view addSubView:horizontalLine];
}
希望有所帮助
答案 2 :(得分:1)
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIView *verticalLine = [[UIView alloc] initWithFrame:CGRectMake(roundf(self.view.bounds.size.width / 2), 0.0, 1.0, self.view.bounds.size.height)];
verticalLine.backgroundColor = [[UIColor redColor] colorWithAlphaComponent:0.5];
verticalLine.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin;
[self.view addSubview:verticalLine];
UIView *horizontalLine = [[UIView alloc] initWithFrame:CGRectMake(0.0, roundf(self.view.bounds.size.height / 2), self.view.bounds.size.width, 1.0)];
horizontalLine.backgroundColor = [[UIColor redColor] colorWithAlphaComponent:0.5];
horizontalLine.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
[self.view addSubview:horizontalLine];
}
答案 3 :(得分:0)
我使用了Magic Bullet Dave发布的第3个选项,效果很好。这是代码:
UIView *borderBottom = [[UIView alloc] initWithFrame:CGRectMake(0.0, 10, widthDesired, 1.0)];
borderBottom.backgroundColor = [UIColor grayColor];
[myView addSubview:borderBottom];
如果你想制作一条垂直线,你只需要使用1的宽度,然后使用所需的高度。