0

我试图了解我必须重写哪些 UIView 方法才能显示某些内容。

我有一个非常简单的应用程序:

  1. 有一个 UIViewController

  2. 有一个 UIView

  3. UIView 用 View 的大小创建一个离屏图像,并在 drawRect 中绘制图像

问题:

  1. 我应该如何创建视图?调用 initWithRect?还是只是初始化?我想以编程方式进行,没有情节提要或笔尖。

  2. UIViewController 设置视图边界时调用 UIView 的什么方法?以及如何获得这些界限(以便能够创建屏幕外图像)。

  3. 有人知道我在哪里可以找到 UIImageView 的来源吗?

注意:我已经尝试了 4 天,但没有成功。

4

3 回答 3

3

1.) initWithFrame:

1.) By default, there is no method that's automatically called when bounds are set. If you subclass the UIView you can override the setBounds method if you wish.

2.) Sources for UIImageView?..The header class is available in the CoreFoundation.framework.

于 2012-06-15T17:11:59.100 回答
0

您需要-(void)loadView在自定义 ViewController 类中覆盖:

UIView *baseView = [[UIView alloc] init];
self.view = baseView;
[super loadView];

从那里您可以创建一个自定义 UIView,添加该 ViewController 的视图属性。

于 2013-10-09T16:03:55.433 回答
0

这就是我在 UIViewController 中使用 UIView 并在 UIViewController 中添加 UIImageView 和 UITextView 作为 UIView 的子视图的方式没有显示 UITextview 的代码,因为您没有在问题中询问它。

- (void)viewDidLoad
{
    UIView *baseView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
    [self.view addSubview:baseView];
    [baseView release];

    // Displays UIImageView
    UIImageView* ImageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 5, 300, 235)];
    self.view.backgroundColor = [UIColor brownColor];

    // load all the frames of our animation
    ImageView.animationImages = [NSArray arrayWithObjects:    
                                    [UIImage imageNamed:@"1a.png"],
                                    [UIImage imageNamed:@"1b.png"],
                                    nil];

    // all frames will execute in 25 seconds
    ImageView.animationDuration = 25; 

    // start animating
    [ImageView startAnimating];
    ImageView.layer.borderWidth = 2;
    ImageView.layer.borderColor = [[UIColor whiteColor]CGColor];
    [ImageView.layer setMasksToBounds:YES];
    [ImageView.layer setCornerRadius:15.0f];

    [baseView addSubview:ImageView]; 
}

希望它可以帮助你。

于 2012-06-15T17:39:27.250 回答