Как изменить положение одного элемента для разных разрешений в swift

Я создал приложение для чистого кода, другие элементы были изменены, как и тесты на разных симуляторах, но один элемент не позиционируется автоматически, как я добавляю соответствующие ограничения, чтобы они всегда располагались на правом берегу устройств, и изменяю размер каждого типа разрешения, очевидно, я не могу добавить ограничения динамически, так как все было сделано с кодом, как это должно быть сделано, но с кодом.

Это мой код

import UIKit

  class ViewController: UIViewController {

    let scrollView = UIScrollView(frame: UIScreen.mainScreen().bounds)

override func loadView() {
    // calling self.view later on will return a UIScrollView!, but we can simply call
    // self.scrollView to adjust properties of the scroll view:
    self.view = self.scrollView

    // setup the scroll view
    scrollView.backgroundColor = UIColor.whiteColor()
    // etc...
}

override func viewDidLoad() {
    super.viewDidLoad()

    var value:CGFloat = 89.0
    var total = 10
    for var index = 0; index < total; ++index {
        //View  verde
        var DynamicView=UIView(frame: CGRectMake(0, value, scrollView.frame.size.width, 198))
        DynamicView.backgroundColor=UIColor.greenColor()
        scrollView.addSubview(DynamicView)

        //Imagenn Fondo  rojo
        var fondo :UIImageView
        fondo = UIImageView(frame:CGRectMake(0, 0, scrollView.frame.size.width, 198))
        fondo.image = UIImage(named:"catedral.jpg")
        fondo.backgroundColor=UIColor.redColor()
        DynamicView.addSubview(fondo)

        //Labels Nombre y Dirección texto blanco
        var nombreLabel=UILabel(frame: CGRect(x: 8,y: 23,width: 304,height: 21))
        nombreLabel.text="Nombre Negocio"
        nombreLabel.font = UIFont(name: nombreLabel.font.fontName, size: 20)
        nombreLabel.textColor=UIColor.whiteColor()
        DynamicView.addSubview(nombreLabel)
        var direccionLabel=UILabel(frame: CGRect(x: 8,y: 44,width: 304,height: 21))
        direccionLabel.text="Dirección Negocio"
        direccionLabel.font = UIFont(name: nombreLabel.font.fontName, size: 13)
        direccionLabel.textColor=UIColor.whiteColor()
        DynamicView.addSubview(direccionLabel)

        //Puntuación  gris
        var puntuacion:UIImageView!
        puntuacion = UIImageView(frame: CGRectMake(282, 8, 30, 30))
        //puntuacion.image = UIImage(named:"7")
        puntuacion.backgroundColor=UIColor.grayColor()
        DynamicView.addSubview(puntuacion)

        //Botones  blanco
        var button1:UIButton = UIButton(frame: CGRectMake(8, 114, 32, 32))
        button1.addTarget(self, action: "button1:", forControlEvents: UIControlEvents.TouchUpInside)
        button1.backgroundColor=UIColor.whiteColor()
        DynamicView.addSubview(button1)
        button1.setImage(UIImage(named: "marker"), forState: UIControlState.Normal)

        var button2:UIButton = UIButton(frame: CGRectMake(48, 114, 32, 32))
        button2.addTarget(self, action: "button2:", forControlEvents: UIControlEvents.TouchUpInside)
        button2.backgroundColor=UIColor.whiteColor()
        DynamicView.addSubview(button2)
        button2.setImage(UIImage(named: "marker"), forState: UIControlState.Normal)

        var button3:UIButton = UIButton(frame: CGRectMake(88, 114, 32, 32))
        button3.addTarget(self, action: "button3:", forControlEvents: UIControlEvents.TouchUpInside)
        button3.backgroundColor=UIColor.whiteColor()
        DynamicView.addSubview(button3)
        button3.setImage(UIImage(named: "marker"), forState: UIControlState.Normal)

        //Cenefa Info  gris
        var cenefa :UIImageView
        cenefa = UIImageView(frame:CGRectMake(0, 150, scrollView.frame.size.width, 48))
        cenefa.backgroundColor=UIColor.grayColor()
        cenefa.alpha=1
        DynamicView.addSubview(cenefa)

        //Info Ccenefa  amarillo
        var descripcion=UILabel(frame: CGRect(x: 2,y: 0,width: scrollView.frame.size.width, height: 45))
        descripcion.backgroundColor=UIColor.yellowColor()
        descripcion.text="Descripcion Negocio"
        descripcion.font = UIFont(name: nombreLabel.font.fontName, size: 10)
        descripcion.textColor=UIColor.blueColor()
        cenefa.addSubview(descripcion)

        value=value+200.0

    }
    scrollView.contentSize=CGSizeMake(scrollView.frame.size.width, 2089)

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

} Этот код помещает серый квадрат, но это не правильно выравнивание в Iphone 6, и плюс это код

//Cenefa Info  gris
        var cenefa :UIImageView
        cenefa = UIImageView(frame:CGRectMake(0, 150, scrollView.frame.size.width, 48))
        cenefa.backgroundColor=UIColor.grayColor()
        cenefa.alpha=1
        DynamicView.addSubview(cenefa)

1 ответ

Решение

Вы можете попробовать это в коде:

UIDevice.currentDevice().userInterfaceIdiom == .Pad ? new position : original position

Вы можете использовать. IPhone для iPhone.

В этом примере вы использовали бы исходную позицию для позиционирования элемента для iPhone, тогда новая позиция будет установлена ​​только для iPad. Идеально подходит для использования CGPoints, вот пример того, как я его использовал:

image.position = CGPoint(x: size.width * 0.25, y: size.height * 0.65) 
image.position = UIDevice.currentDevice() .UserInterfaceIdiom == .Pad ? CGPoint(size.width * 0.3, y: size.height * 0.7) : CGPoint(x: size.width * 0.25, y: size.height * 0.65)
Другие вопросы по тегам