在CGRect iOS中添加边框

时间:2013-07-02 23:24:46

标签: ios cgrect

我想在CGRect中添加边框。虽然以前的解决方案建议如下:

CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);
    CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0);
    CGContextFillRect(context, rectangle);

或类似的东西:

view.layer.borderWidth = 10;
view.layer.borderColor = [UIColor redColor].CGColor;

我不能在我的方法中应用这两种方法。

在我的mainView控制器中,我有这个代码:

-(void)actionHint
{
    CGRect  viewRect = CGRectMake(kScreenWidth/2 -kMenuWidth, kScreenHeight/2-kMenuHeight - 70,kMenuWidth*10, kMenuHeight*4);
    HintMenu* hintMenu = [HintMenu viewWithRect:viewRect];
    [hintMenu.btnReveal addTarget:self action:@selector(actionReveal) forControlEvents:UIControlEventTouchUpInside];
    [hintMenu.btnNewAnag addTarget:self action:@selector(actionNewAnagram) forControlEvents:UIControlEventTouchUpInside];
    [self.gameView addSubview:hintMenu];
}

我正在创建一个游戏,我想要一个简单的矩形,并在我当前视图的基础上提供一些帮助操作。 viewRect的代码是:

+(instancetype)viewWithRect:(CGRect)r
{
    HintMenu* hint = [[HintMenu alloc] initWithFrame:r];
    hint.userInteractionEnabled = YES;

    UIImage* image=[UIImage imageNamed:@"btn"];
    ... rest of items in the cgrect
    return hint;
}

我应该在哪里添加用于添加边框的代码以及该代码应该是什么?

2 个答案:

答案 0 :(得分:3)

您的HintMenu是一种视图,因此您可以使用initWithFrame方法执行此操作:

self.layer.borderWidth = 10;
self.layer.borderColor = [UIColor redColor].CGColor;

答案 1 :(得分:0)

您可以使用此代码创建带边框的矩形。您所要做的就是导入QuartzCore框架。随意复制+粘贴此代码。

#import <QuartzCore/QuartzCore.h>

-(void)viewDidLoad{
    //give it a blue background
    self.layer.backgroundColor=[UIColor blueColor].CGColor;
    //set the boarder width
    self.layer.borderWidth=5;
    //set the boarder color
    self.layer.borderColor=[UIColor redColor].CGColor;    
}