我会在我正在努力的应用程序上发布我的代码的一部分,这个概念与众不同,但相机会话的设计与instagram应用程序非常相似。我也使用PageMenu可可豆荚,这非常好并且易于通过代码实现。
override func viewDidLoad() {
super.viewDidLoad()
pageMenu?.delegate = self
photoControllerBG.frame = CGRect(x: 0, y : self.view.frame.minY, width: self.view.frame.width, height: self.view.frame.height )
let cameraButton = UIButton(frame: CGRect(x: self.view.frame.midX - , y: photoControllerBG.frame.minY + (self.view.frame.maxY/20*1), width: 130, height: 130))
cameraButton.addTarget(self, action: #selector(cameraButtonPressed(button:)), for: .touchUpInside)
cameraButton.setImage(#imageLiteral(resourceName: "Camera Button.png"), for: UIControlState.normal)
self.view.addSubview(cameraButton)
}
目前,iPhone 7 Plus上的按钮将按照我想要的方式显示,以ViewController为中心,并且相机按钮的图像具有相同的宽度和高度,因此它保持完美的圆形。当我用iPhone SE或iPhone 6切换模拟器时,问题出现了,其中按钮将变得太大而不是居中。你们能帮我找一个数学公式,它可以用来解决这个大而小的问题吗?
答案 0 :(得分:2)
您的问题意味着在代码中执行以下操作(swift)。除非你在swift中创建按钮,否则我根本不会这样做。因此,如果您在故事板中创建了一个按钮,则可以按如下方式对其进行适当缩放: -
我会在故事板中使用比例宽度约束和宽高比约束来实现这一点。
可能不会立即知道如何做到这一点,所以我附上了一个图片之旅。
答案 1 :(得分:0)
let label = UILabel()
label.text = "title"
label.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(label)
let button = UIButton(type: .system)
button.translatesAutoresizingMaskIntoConstraints = false
button.setImage(#imageLiteral(resourceName: "image"), for: .normal)
view.addSubview(button)
NSLayoutConstraint.activate([
label.centerXAnchor.constraint(equalTo: view.centerXAnchor),
label.topAnchor.constraint(equalTo: topLayoutGuide.bottomAnchor, constant: 16)
])
NSLayoutConstraint.activate([
button.centerXAnchor.constraint(equalTo: view.centerXAnchor),
button.topAnchor.constraint(equalTo: label.bottomAnchor),
button.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 0.3), //change your multiplier
button.heightAnchor.constraint(equalTo: button.widthAnchor)
])