2

我想在 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;
}

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

4

2 回答 2

3

HintMenu是一种视图,因此在其initWithFrame方法中您可以执行以下操作:

self.layer.borderWidth = 10;
self.layer.borderColor = [UIColor redColor].CGColor;
于 2013-07-02T23:32:18.947 回答
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;    
}
于 2013-07-02T23:38:42.990 回答