我想在ViewController2中绘制一个矩形。
我读到我可以使用CGRect,但我找不到怎么做。
我想代表一个房间,所以我可以在我在房间里的位置放一个圆点。
我已经尝试覆盖drawRect方法,但我有一些错误
我尝试使用此代码:
// rectangle.h
#import <UIKit/UIKit.h>
@interface Rectangle : UIView
@property (nonatomic, assign) CGRect myRect;
@end
// rectangle.m
#import "rectangle.h"
@implementation Rectangle
@synthesize myRect;
- (void)drawRect:(NSRect)rect {
// Drawing code here.
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(c, 1.0, 0.0, 0.5, 1.0);
CGContextFillRect(c, myRect);
}
@end
// ViewController2.m
#import "ViewController2.h"
#import "rectangle.h"
@implementation ViewController2
// Implement viewDidLoad to do additional setup after loading the view.
- (void)viewDidLoad {
[super viewDidLoad];
if(![self.view isKindOfClass:Rectangle])
{
Rectangle *view = [[Rectangle alloc] initWithFrame:self.view.bounds];
self.view = view;
}
[(rectangle*)self.view setMyRect:CGRectMake(120, 120, 80, 80)];
[self.view setNeedsDisplay];
}
@end
但这不起作用
答案 0 :(得分:0)
在-(void) viewDidLoad
文件中的.m
方法内,执行:
CGRect frame = CGRectMake(x, y, w, h)
// you substitute x,y,w, and h for x position, y position, width, and height
然后做:
UIView *v = [[UIView alloc] initWithFrame:frame];
这就是你在代码中使用CGRectMake
的方式。
希望有所帮助。
答案 1 :(得分:0)
在视图控制器中,有很多方法可以绘制矩形(在代码中)。您可以创建CAShapeLayer并将其添加到视图中。您可以覆盖drawRect:
功能并使用核心图形进行绘制。您可以创建绘制矩形的GLView。您可以使用borderColor和borderWidth创建单个UIView子视图。
有很多选择。我们需要知道目的和期望的效果,以便为您提供最佳的行动方案。更多的背景故事以及您尝试过的事情对于为您提供有效的解决方案非常有帮助。
答案 2 :(得分:0)
首先,我认为您不了解CGRect是一个结构而不是一个对象。它定义了一个矩形的原点和大小,然后您需要使用UIView或其他UI类。
绘制一个矩形为@ user2277872已指示将CGRect作为其框架 - 在视图中指定它的原点(x.y)及其宽度和高度(w,d)
要将其添加到视图控制器视图中,您需要将其添加为子视图。
CGRect frame = CGRectMake(0,0,200,400);
然后做UIView * v = [[UIView alloc] initWithFrame:frame];
再次为@ user2277872表示你可以在viewdidload方法中执行此操作
只是认为他没有告诉你是否应该写
[self.view addSubview: v];
需要注意的另一点是默认情况下视图通常为白色,因此如果要查看,则需要设置背景颜色
[v setBackgroundColor: [UIColor redColor]];
您应该在视图顶部看到一个矩形。
当您使用故事板时,您只需将视图拖动到视图控制器并在那里设置它的颜色和大小。