Изменить высоту UIProgressView в Swift

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

Например, ниже - класс ученика, который будет использовать его в нашем коде.

public class Student {

    private int id;

    public int getId() {
        return this.id;
    }

    public setId(int newId) {
        this.id = newId;
    }
}

Приведенный ниже код дает вам исключение с нулевым указателем.

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}

Поскольку вы используете Obj_Student, но вы забыли инициализировать его, как в правильном коде, показанном ниже:

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student = new Student();
            obj_Student.setId(12);
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}
24
задан Zach Morris 7 July 2015 в 16:09
поделиться

5 ответов

Вы можете масштабировать его, установив его преобразование следующим образом:

Swift 2

masteryProgress.transform = CGAffineTransformScale(masteryProgress.transform, 1, 20)

Swift 3、4

masteryProgress.transform = masteryProgress.transform.scaledBy(x: 1, y: 20)

enter image description here

79
ответ дан Bannings 7 July 2015 в 16:09
поделиться
  • 1
    Это работает на меня. Я попробовал - путь к классу и обеспечение пути для моего класса, и это не говорит определенных классов. Просто Выполнение javah-jni < classfile> это работает – shailesh 17 June 2015 в 17:45
  • 2
    Это работает на меня. Я попробовал - путь к классу и обеспечение пути для моего класса, и это не говорит определенных классов. Просто Выполнение javah-jni < classfile> это работает – shailesh 17 June 2015 в 17:45
  • 3
    Это работает на меня. Я попробовал - путь к классу и обеспечение пути для моего класса, и это не говорит определенных классов. Просто Выполнение javah-jni < classfile> это работает – shailesh 17 June 2015 в 17:45
  • 4
    Это работает на меня. Я попробовал - путь к классу и обеспечение пути для моего класса, и это не говорит определенных классов. Просто Выполнение javah-jni < classfile> это работает – shailesh 17 June 2015 в 17:45
  • 5
    Это работает на меня. Я попробовал - путь к классу и обеспечение пути для моего класса, и это не говорит определенных классов. Просто Выполнение javah-jni < classfile> это работает – shailesh 17 June 2015 в 17:45

Это будет работать:

masteryProgress.transform = CGAffineTransformMakeScale(1, 4)
6
ответ дан Andy Lebowitz 7 July 2015 в 16:09
поделиться
  • 1
    Работавший для меня. Я добавил " javah - путь к классу bin/classes" прежде-d и это скомпилировало! – Vaibhav Jani 16 September 2014 в 08:01
  • 2
    Работавший для меня. Я добавил " javah - путь к классу bin/classes" прежде-d и это скомпилировало! – Vaibhav Jani 16 September 2014 в 08:01
  • 3
    Работавший для меня. Я добавил " javah - путь к классу bin/classes" прежде-d и это скомпилировало! – Vaibhav Jani 16 September 2014 в 08:01
  • 4
    Работавший для меня. Я добавил " javah - путь к классу bin/classes" прежде-d и это скомпилировало! – Vaibhav Jani 16 September 2014 в 08:01
  • 5
    Работавший для меня. Я добавил " javah - путь к классу bin/classes" прежде-d и это скомпилировало! – Vaibhav Jani 16 September 2014 в 08:01

В Swift версии 3.0.2 используйте это:

masteryProgress.transform = masteryProgress.transform.scaledBy(x: 1, y: 5)
2
ответ дан Prasad Khode 7 July 2015 в 16:09
поделиться

Помещение UIProgressView внутри UIStackView и установка ограничений UIStackView также могут работать. По крайней мере, работал на меня

1
ответ дан Anestis S. 7 July 2015 в 16:09
поделиться
  • 1
    @krishnakumar, на что были установлены переменные среды первоначально, и на что Вы изменяли их? – Alan 27 October 2016 в 14:41
  • 2
    @krishnakumar, на что были установлены переменные среды первоначально, и на что Вы изменяли их? – Alan 27 October 2016 в 14:41
  • 3
    @krishnakumar, на что были установлены переменные среды первоначально, и на что Вы изменяли их? – Alan 27 October 2016 в 14:41
  • 4
    @krishnakumar, на что были установлены переменные среды первоначально, и на что Вы изменяли их? – Alan 27 October 2016 в 14:41
  • 5
    @krishnakumar, на что были установлены переменные среды первоначально, и на что Вы изменяли их? – Alan 27 October 2016 в 14:41

Некоторая модификация ответа 'Sauvik Dolui':

В UIBezierPath необходимо установить cornerRadius: как (self.frame.height / 2). Это - более универсальное решение, чем использование (4.0).

override func layoutSubviews() {
    super.layoutSubviews()

    let maskLayerPath = UIBezierPath(roundedRect: bounds, cornerRadius: self.frame.height / 2)
    let maskLayer = CAShapeLayer()
    maskLayer.frame = self.bounds
    maskLayer.path = maskLayerPath.cgPath
    layer.mask = maskLayer
}
0
ответ дан 28 November 2019 в 00:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: