我正在尝试创建像这样的界面
我有一张带有阴影的撕纸,位于导航栏下方但在我的桌面视图上方。
我在tableview控制器中使用以下代码
- (void)viewDidLoad
{
[super viewDidLoad];
[self.view addSubview:[[UIImageView alloc] initWithImage:[UIImage imageNamed: @"ripped-paper"]]];
}
除了松土纸与桌面视图一起滚动之外,这种方法很好。我要求它在导航栏下保持固定。
有什么想法吗?
答案 0 :(得分:3)
在iOS 6中,您只需使用UINavigationBar
的shadowImage
属性。
UIImage *image = [[image imageNamed:@"tornPaper"] resizableImageWithCapInsets:UIEdgeInsetsMake(/* Your insets here */)];
self.navigationItem.navigationBar.shadowImage = image;
答案 1 :(得分:0)
您可以尝试将图片添加到表格视图控制器self.view.superview
:
[self.view.superview addSubview:[[UIImageView alloc] initWithImage:[UIImage imageNamed: @"ripped-paper"]]];
你应该在viewDidAppear
中执行此操作(否则将不会设置self.view.superview)。
这可能还需要更改框架/中心,或多或少像这样:
UIImageView* rippedView = [[UIImageView alloc] initWithImage:[UIImage imageNamed: @"ripped-paper"]];
rippedView.center = <SET CENTER HERE>;
[self.view.superview addSubview:rippedView];
但最终它将在很大程度上取决于您的视图层次结构。
编辑:
对于您的自动旋转问题,请尝试设置视图autoresizingMaks
rippedView.autoresizingMaks = UIViewAutoresizingNone;
看看情况是否有所改善。这样,图像视图不应在旋转时调整大小。 (另外:你在旋转方法中做了什么吗?)