Ser*_*nce 21 iphone cocoa-touch uinavigationbar uinavigationcontroller ios
在我的应用程序中,我有一些自定义标题(字体不是字体)存储在png中,我想将其作为导航的标题.我希望标题中的字母对于每个不同的视图控制器都具有相同的大小,因此在插图画家中我努力使它具有相同的大小和宽度(提供空白以考虑更短的字符串).我做以下事情:
UIImageView *titleImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"SelectAnAlbumTitleLettering"]];
titleImageView.contentMode = UIViewContentModeCenter;
self.navigationItem.titleView = titleImageView;
[titleImageView release];
Run Code Online (Sandbox Code Playgroud)
并且看起来图像被任意调整大小并基于每个元素包括的元素navigationBar
(即后退按钮,右按钮等)定位.
我想知道,我怎样才能获得控制权,titleView
所以我可以让它实现我想要的大小和位置,因此不会随意调整大小/重新定位.
Jef*_*ley 43
不要将图像视图用作标题视图,而是创建包含图像视图的另一个视图.将该视图设置为导航项的标题视图; 现在您可以在标题视图中自由调整图像视图的帧.
Nis*_*agi 31
您可以控制UINavigationbar titleview的大小和位置.不要直接将imageview设置为titleview.而是创建一个自定义UIView,然后根据您的要求设置其框架,并添加titleImageView作为其子视图.
UIView *backView =[[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 40)];// Here you can set View width and height as per your requirement for displaying titleImageView position in navigationbar
[backView setBackgroundColor:[UIColor greenColor]];
UIImageView *titleImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"SelectAnAlbumTitleLettering"]];
titleImageView.frame = CGRectMake(45, 5,titleImageView.frame.size.width , titleImageView.frame.size.height); // Here I am passing origin as (45,5) but can pass them as your requirement.
[backView addSubview:titleImageView];
//titleImageView.contentMode = UIViewContentModeCenter;
self.navigationItem.titleView = backView;
Run Code Online (Sandbox Code Playgroud)
希望它能帮到你.
小智 12
在Swift中,你可以这样做:
var titleView = UIView(frame: CGRectMake(0, 0, 100, 40))
var titleImageView = UIImageView(image: UIImage(named: "cocolife"))
titleImageView.frame = CGRectMake(0, 0, titleView.frame.width, titleView.frame.height)
titleView.addSubview(titleImageView)
navigationItem.titleView = titleView
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
29530 次 |
最近记录: |