Jak zmienić rozmiar UIView?
Mam problem z modyfikacją wysokości UIView przy starcie.
Muszę UIView i chcę, aby jeden był rozmiar ekranu * 70, a drugi, aby wypełnić lukę.
Oto co mam
@IBOutlet weak var questionFrame: UIView!
@IBOutlet weak var answerFrame: UIView!
let screenSize:CGRect = UIScreen.mainScreen().bounds
I
questionFrame.frame.size.height = screenSize.height * 0.70
answerFrame.frame.size.height = screenSize.height * 0.30
Nie ma wpływu na aplikację w czasie działania. Używam autolayout, ale mam tylko ograniczenia marginesów...
Czy robię to źle?5 answers
Proszę. to powinno zadziałać.
questionFrame.frame = CGRectMake(0 , 0, self.view.frame.width, self.view.frame.height * 0.7)
answerFrame.frame = CGRectMake(0 , self.view.frame.height * 0.7, self.view.frame.width, self.view.frame.height * 0.3)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-03 23:07:15
Można to osiągnąć różnymi metodami w Swift 3.0 pracował nad najnowszą wersją Sierpień - 2017
Bezpośrednie przypisanie wartości wysokości i szerokości dla widoku:
userView.frame.size.height = 0
userView.frame.size.width = 10
Przypisz CGRect do ramki
userView.frame = CGRect(x:0, y: 0, width:0, height:0)
Szczegóły Metody:
CGRect(x: punkt X, y: punkt Y, width: Szerokość widoku, height: Wysokość widoku)
Korzystanie z metody rozszerzenia dla CGRECT
Dodaj po kodzie rozszerzenia w dowolnym pliku swift,
extension CGRect {
init(_ x:CGFloat, _ y:CGFloat, _ w:CGFloat, _ h:CGFloat) {
self.init(x:x, y:y, width:w, height:h)
}
}
Użyj poniższego kodu w dowolnym miejscu w aplikacji dla widoku, aby ustawić parametry rozmiaru
userView.frame = CGRect(1, 1, 20, 45)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-22 13:57:35
Swift 3 i Swift 4:
myView.frame = CGRect(x: 0, y: 0, width: 0, height: 0)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-05 07:33:25
Hi create this extends if you want. Aktualizacja 2015 Swift 2.0
Utwórz Plik Extends.Swift i dodaj ten kod (dodaj Importuj fundament gdzie chcesz zmienić wysokość)
/**
Get Set x Position
- parameter x: CGFloat
by DaRk-_-D0G
*/
var x:CGFloat {
get {
return self.frame.origin.x
}
set {
self.frame.origin.x = newValue
}
}
/**
Get Set y Position
- parameter y: CGFloat
by DaRk-_-D0G
*/
var y:CGFloat {
get {
return self.frame.origin.y
}
set {
self.frame.origin.y = newValue
}
}
/**
Get Set Height
- parameter height: CGFloat
by DaRk-_-D0G
*/
var height:CGFloat {
get {
return self.frame.size.height
}
set {
self.frame.size.height = newValue
}
}
/**
Get Set Width
- parameter width: CGFloat
by DaRk-_-D0G
*/
var width:CGFloat {
get {
return self.frame.size.width
}
set {
self.frame.size.width = newValue
}
}
For Use (inherits of UIView)
inheritsOfUIView.height = 100
button.height = 100
print(view.height)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-02 08:48:01
Możesz to zrobić w Interface Builder:
1) Control-przeciągnij z widoku ramki (np. questionFrame) do widoku głównego, w wyskakującym okienku wybierz "równe wysokości".
2) Następnie przejdź do inspektora rozmiaru ramki, kliknij Edytuj ograniczenie "Equal height to Superview", Ustaw mnożnik na 0.7 i naciśnij return.
Zobaczysz, że ograniczenie zmieniło się z " równej wysokości na..."do" Wysokość proporcjonalna do...".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-01 10:52:14