0

我正在尝试使用下面的代码构建一个使用 CGFrame 的示例

- (void)viewDidLoad
{
  [super viewDidLoad];    
  CGRect newFrame = [note_view frame];
  if (UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation]))
    newFrame.size.height += 223;
  else
    newFrame.size.height += 70;
  [UIView beginAnimations:nil context:nil];
  [UIView setAnimationDuration:0.2];
  [UIView setAnimationDelegate:self];
  [UIView setAnimationCurve:UIViewAnimationOptionCurveEaseInOut];
  [note_view setFrame:newFrame];
  [UIView commitAnimations];

}

- (void)loadView {
  [super loadView];
  NSString *pupil;
  UIBarButtonItem *done = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(saveAndExit)];
  [[self navigationItem] setLeftBarButtonItem:done];
  UIBarButtonItem *date = [[UIBarButtonItem alloc] initWithTitle:@"Date Notes" style:UIBarButtonItemStyleBordered target:self action:@selector(dateNote)];
  [[self navigationItem] setRightBarButtonItem:date];
  [[self navigationItem] setTitle:@"Notes - " ];
  note_view = [[UITextView alloc] init];
  [note_view setBackgroundColor:[UIColor whiteColor]];
  [note_view setFont:[UIFont systemFontOfSize:17]];
  [[note_view layer] setCornerRadius:5];
  [[note_view layer] setBorderWidth:2];
  [[note_view layer] setBorderColor:[[UIColor colorWithRed:0.3882352941 green:0.6 blue:0.8117647059 alpha:1] CGColor]];
  [[note_view layer] setShadowOpacity:1];
  [[note_view layer] setShadowColor:[[UIColor colorWithRed:0.3882352941 green:0.6 blue:0.8117647059 alpha:1] CGColor]];
  [[note_view layer] setShadowRadius:10];
  [[note_view layer] setMasksToBounds:NO];

  [[self view] addSubview:note_view];
}

框架不会显示,我只是得到一个空白屏幕,我错过了什么?

4

1 回答 1

0

好吧,我在您的代码中发现了一个问题。

问题:您没有给出 note_view 的宽度,这意味着它已被占用,因为0这就是为什么您的 note_view 一旦设置了宽度就看不到并检查它是否会出现。

note_view.frame=CGRectMake(0, 0, 100, 10);

if (UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation])){
        newFrame.size.height += 223;
        newFrame.size.width = 100;

    }
    else
    {
        newFrame.size.height += 70;
        newFrame.size.width = 100;
    }
于 2013-05-09T05:50:12.290 回答