NavigationItem中的titleView不考虑iOS 11中的帧高

时间:2017-09-22 09:03:59

标签: ios swift xcode swift3

我已更新到Xcode 9,并且我的titleView中有NavigationItem以这种方式创建:

let logo = UIImageView(frame: CGRect(x: 0, y: 0, width: 70, height: 25))
logo.image = UIImage.logo
logo.contentMode = .scaleAspectFit
self.navigationItem.titleView = logo

结果是它不再考虑帧高。

1 个答案:

答案 0 :(得分:2)

  

我们可以控制UINavigationbar titleview的大小和位置。不要直接将imageview设置为titleview。在这里创建一个自定义UIView,然后将框架设置为您需要的框架,并将徽标添加为其子视图

喜欢

let supportVie = UIView(frame: CGRect(x: 0, y: 0, width: 70, height: 25))
    // Here you can set View width and height as per your requirement for displaying supportVie position in navigationbar
    //supportVie.backgroundColor = UIColor.red
    let logo = UIImageView(image: UIImage.logo ) //UIImage(named: "SelectAnAlbumTitleLettering")
    logo.frame = CGRect(x: 45, y: 5, width: supportVie.frame.size.width, height: supportVie.frame.size.height)
    // customize the  origin as (45,5) but can pass them as your requirement.
    supportVie.addSubview(logo)
    //supportVie.contentMode = .center;
    navigationItem.titleView = supportVie