作者zonble (zonble)
看板MacDev
标题Re: [问题] 如何取空白可画图的大小?
时间Tue Dec 28 04:36:00 2010
※ 引述《offname (Loafer是了好)》之铭言:
: → aecho:这个透过super loadView所拿到的view 12/27 13:01
: → aecho:它的frame的size,是符合它的可用区域。 12/27 13:01
: → aecho:也就是扣掉navigationBar, statusBar所占用的高度。 12/27 13:02
: → aecho:跟自己所产生的,但又需要自己设定frame的不太一样唷~ 12/27 13:02
其实不是这样耶。在写要加入到 Navigation Controller 的
view controller 的时候,基本上不需要考虑怎样在生出 view
的时候,view 的 frame 就跟 Nav Controller 要求的大小一样,
因为 Nav Controller 在 push 一个 view controller 的时候,
就会去改变这个 view controller 的 view 的大小。
所以,如果我们在包在 Nav Controller 里头的这个 view controller
的 view 上面,加了 sub view,我们要做的事情就是要让 view
改变 frame 的时候,sub view 也跟着一起改变 frame,也就是,
sub view 要加上 autoresizing mask。
我猜想 push view controller 大概是这样写的:
- (void)pushViewController:(UIViewController *)viewController
animated:(BOOL)animated
{
UIViewController *lastCV = [_viewControllers lastObject];
[lastCV viewWillDisappear:animated];
[_viewControllers addObject:viewController];
[viewController viewWillAppear:animated];
viewController.frame = [_contentView bounds];
[[[_contentView subviews] lastObject] removeFromSuperview];
[_contentView addSubview:viewController.view];
if (animated) {
CATransition *transition = [CATransition animation];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromLeft;
......
}
[lastCV viewDidDisappear:animated];
[viewController viewDidAppear:animated];
}
--
zonble.net
cocoa.zonble.net
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.44.182.144