Xcode 5
我正在尝试创建自定义裁剪矩形来裁剪图像。我明白我需要在扩展UIView的类中覆盖drawRect()方法。但后来我不知道如何在ViewController中使用该类来显示它。
如果我的方向错误,请更正。我对此有点新鲜。
MDCustomCropRect.h
#import <UIKit/UIKit.h>
@interface MDCustomCropRect : UIView
@end
MDCustomCropRect.m
- (void)drawRect:(CGRect)rect
{
// Drawing code
CGRect rectangle = CGRectMake(0, 100, 320, 100);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 0.0); //this is the transparent color
CGContextSetRGBStrokeColor(context, 0.0, 0.0, 0.0, 0.5);
CGContextFillRect(context, rectangle);
CGContextStrokeRect(context, rectangle); //this will draw the border
}
答案 0 :(得分:1)
只需将您的视图添加为UIViewController视图的子视图。
在viewController代码中,通常使用viewDidLoad
方法:
// create your view
MDCustomCropRect *myView = [[MDCustomCropRect alloc] init];
[self.view addSubView:myView]
// you can manually set your view frame - in this case use initWithFrame: instead of init
// OR use layout constraints : define and add constraints AFTER your inserted your view as a subview
修改强>:
在您的情况下,由于您只绘制了一个矩形 - 这就是UIView
- 您可以改为:
UIView *myRectangleView = [[UIView alloc] initWithFrame:CGRectMake(0, 100, 320, 100)];
myRectangleView.backgroundColor = [UIColor clearColor];
myRectangleView.layer.borderWidth = 1;
myRectangleView.layer.borderColor = [UIColor colorWithWhite:0 alpha:0.5].CGColor;
[self.view addSubView:myRectangleView];
您的案例中不需要特定的drawRect
答案 1 :(得分:1)
在你的viewController中
MDCustomCropRect *myView = [[MDCustomCropRect alloc] init];
myView.frame = CGRectMake(10,10,200,100);
myView.backgroundColor = [UIColor greenColor];
[self.view addSubView:myView]