因此,使用以下方法将UI按钮设置为帧宽和高度
let button = UIButton()
button.frame = CGRect(x: 0, y: 0, width: 31, height: 31) //set the frame
这很管用。https://i.stack.imgur.com/sQKc9.jpg
然而,当我关闭应用程序并重新打开时,我会发现这个奇怪的事情发生了,应用程序无法记住按钮的宽度和高度。
取而代之的是这样做(见图),而不是停留在31到31之间。
https://i.stack.imgur.com/xO0yT.jpg
现在我是怎么设置这个按钮的?
下面的代码。
// Image needs to be added to project.
let button = UIButton()
button.frame = CGRect(x: 0, y: 0, width: 31, height: 31) //set the frame
// let modifier = AnyImageModifier { return $0.withRenderingMode(.alwaysOriginal) }
button.kf.setImage(with: fburl, for: .normal, placeholder: nil)
button.addTarget(self, action: Selector(("yourActionFunc")), for: .touchUpInside)
let barButton = UIBarButtonItem()
barButton.customView = button
self.tabBarController?.navigationItem.rightBarButtonItem = barButton
//END FACEBOOK PROFILE IMAGE
我不认为它与上面的代码有任何关系,我认为它是关于函数的
覆盖func viewDidAjar(_动画:bool){
print(defaults.string(forKey: defaultsKeys.socialLogin))
self.tabBarController?.navigationItem.title = "DRN1"
let sessionsocial = self.defaults.string(forKey: defaultsKeys.socialLogin)
if sessionsocial == nil {
// Image needs to be added to project.
let buttonIcon = UIImage(systemName: "person.circle")
let rightBarButton = UIBarButtonItem(title: "Person", style: UIBarButtonItem.Style.done, target: self, action: #selector(FirstViewController.checkLogin(_:)))
rightBarButton.image = buttonIcon
self.tabBarController?.navigationItem.rightBarButtonItem = rightBarButton
//self.tabBarController?.navigationItem.rightBarButtonItem.backgroundColor = UIColor(patternImage: UIImage(systemName: "ng")
//self.tabBarController?.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: "person.circle", target: self, action: nil)
}
} 但是我知道它没有运行那个代码,因为我会看到一个人.圆图像,而不是我的大脑袋。
所以我想知道如何解决这个奇怪的问题。
https://i.stack.imgur.com/zHmhm.jpg
按钮是一个可变的对象。通过使其成为视图控制器上的实例变量而不是局部变量来保留对它的引用。您也可以通过挖掘它的父视图来恢复它(超级视图子视图数组保留它的子视图),但是这通常不是正确的方法。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。