INHOUDSOPGAWE:
- Stap 1: Skep die projek
- Stap 2: Uitleg van storiebord
- Stap 3: Ontwerpbord en estetika van storiebord
- Stap 4: Verbind en integreer elemente
- Stap 5: Vestiging van veranderlikes
- Stap 6: Funksie getalknoppies
- Stap 7: Integrasie van bedieningsknoppies
- Stap 8: Diverse knoppies funksie
- Stap 9: Volledige kode
Video: Hoe om 'n sakrekenaar in Xcode te maak met behulp van Swift: 9 stappe
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
In hierdie vinnige handleiding sal ek u wys hoe u 'n eenvoudige sakrekenaar met Swift in Xcode kan skep. Hierdie app is gebou om amper identies te lyk aan die oorspronklike sakrekenaarprogram vir iOS. U kan die aanwysings stap-vir-stap volg en die sakrekenaar saam met my bou, of u kan eenvoudig na die laaste stap gaan en die kode in u view-kontroleerder plak en plak. As u dit egter doen, moet u al u elemente op die verhaalbord met u aansigbeheerder verbind.
Stap 1: Skep die projek
Die eerste stap om ons sakrekenaar te maak, is om die projek eintlik in Xcode te skep. U kan dit doen deur op 'Skep 'n nuwe Xcode -projek' te klik en dit te noem wat u wil. Ek het myne 'Sakrekenaar' genoem. Die volgende stap is om 'Single View Application' vir die tipe app te kies. Hou alle ander inligting as die standaardwaarde.
Stap 2: Uitleg van storiebord
Stap 2 van die skep van ons sakrekenaar vereis dat u 'n basiese uitleg in die storiebord ontwerp. Voordat u hiermee begin, beveel ek aan dat u u simulator -toestel na die iPhone 7 Plus verander. Begin deur 'n knoppie na die storiebord te sleep en die afmetings daarvan na 89 x 89 te verander. Verander die agtergrondkleur in kwik op die attribute -inspekteur en die lettertipe kleur daarvan in wolfram. Pas dan die lettertipe aan by Helvetica Light 30. Gaan voort om die knoppie te kopieer en te plak totdat u 'n totaal van 20. Pas die uitleg van hierdie knoppies aan sodat u vyf rye en vier kolomme het.
Stap 3: Ontwerpbord en estetika van storiebord
Vee die tweede knoppie in die onderste ry uit en brei die eerste knoppie uit om hierdie spasie oor te neem. Verander die plekhouerwaarde van hierdie knoppie in nul. Gaan voort om die getalwaardes en simbole van elke knoppie te verander totdat dit byna dieselfde is as die prent hierbo. By die funksie -inspekteur is die donkerder grys kleur silwer, die oranje kleur mandarijn en die lettertipe kleur word verander na sneeu op die oranje knoppies. Klik vervolgens op die aansigbeheerder en verander die agtergrondkleur na swart. Voeg 'n etiket bo die knoppies by en pas die grootte aan volgens u gemak. Rig die teks regs in en verander die lettertipe van die etiket na Helvetica light 70. As u wil, kan u beperkings by al die elemente voeg om die app vir alle toestelle dieselfde te laat lyk.
Stap 4: Verbind en integreer elemente
Maak die kenmerkinspekteur oop en verander die etiket vir elke getalknoppie. Die merker moet 1 meer wees as die werklike numeriese waarde. Byvoorbeeld, die #0 -knoppie moet 'n tagwaarde van 1 hê, die #1 -knoppie moet 'n tagwaarde van 2 hê, die #2 -knoppie moet 'n tagwaarde van 3 hê, ensovoorts. Druk dan op beheer, klik op die #0 -knoppie en sleep dit na die aansigbeheerder. 'N Opspring moet op die skerm verskyn. Verander die verbinding na 'aksie', die tipe na 'UIButton', die gebeurtenis na 'Touch Up Inside', die argumente na 'Sender' en die naam in 'getalle'. U kan die naam verander na wat u wil, maar dit beteken dat u die naam weer moet verander wanneer u die funksie later in die program bel. Beheer, klik en sleep dan elke getalleknoppie na die funksie wat ons pas geskep het. Beheer, klik en sleep die etiket na die program, maar NIE na die funksie nie. Dit beteken dat u die etiket eenvoudig as 'n aparte veranderlike in die funksie bring. Onthou, as u ooit verward is oor die kode, het ek al my kode gelaat om op die laaste stap van hierdie instruksies te gebruik.
Stap 5: Vestiging van veranderlikes
Om ons getalknoppies funksioneel te maak, moet ons die waarde daarvan koppel aan die etiket in ons 'getalle' -funksie. U kan dit doen deur eers 'n veranderlike 'numberOnScreen' te skep en dit van tipe dubbel te maak en gelyk aan 0: var numberOnScreen: Double = 0; En moenie vergeet nie: as die kode hier 'n bietjie onduidelik is, het ek die volledige kode op die laaste stap aan u oorgelaat om dit na u smaak te gebruik. Stel dan 'n ander veranderlike 'performingMath' van die tipe bool in en maak dit onwaar: var performingMath = false; Skep ook 'n ander veranderlike genaamd 'previousNumber' van tipe double en stel dit gelyk aan 0: var previousNumber: Double = 0; Die laaste veranderlike wat u moet skep, is die 'operasie' -veranderlike. Stel dit gelyk aan 0: var operasie = 0;
Stap 6: Funksie getalknoppies
Nadat u die toepaslike veranderlikes vasgestel het, kan u voortgaan met die kopiëring en plak van hierdie kode in u 'getalle' -funksie:
as performingMath == waar {
label.text = String (sender.tag-1)
numberOnScreen = Dubbel (etiket.teks!)!
performingMath = vals
}
anders {
label.text = label.text! + String (sender.tag-1)
numberOnScreen = Dubbel (etiket.teks!)!
}
In wese vertoon hierdie stuk kode sekere nommers op die etiket as u op die toepaslike knoppie druk. Ons moet egter nog al die ander knoppies kan gebruik en die sakrekenaar funksioneel kan maak. Ons sal dit in die volgende paar stappe doen.
Stap 7: Integrasie van bedieningsknoppies
Maak die inspekteur vir kenmerke oop en verander die etiket vir alle verskillende knoppies. Die duidelike knoppie moet 'n etiket van 11 hê, die verdelingsknoppie moet 'n etiket van 12 hê, die vermenigvuldigingsknoppie moet 'n etiket van 13 hê, die aftrekkingsknoppie moet 'n etiket van 14 hê, die byvoegingsknoppie moet 'n etiket van 15 hê, en die gelyke knoppie moet 'n etiket hê van 16. Druk dan op beheer, klik op die deursigtige knoppie en sleep dit na die aansigbeheerder. 'N Opspring moet op die skerm verskyn. Verander die verbinding na 'aksie', die tipe na 'UIButton', die gebeurtenis na 'Touch Up Inside', die argumente na 'Sender' en die naam in 'knoppies'. U kan die naam verander na wat u wil, maar dit beteken dat u die naam weer moet verander wanneer u die funksie later in die program bel. Beheer, klik en sleep dan elke diverse knoppie na die funksie wat ons pas geskep het.
Stap 8: Diverse knoppies funksie
Nadat u al die gemerkte knoppies met die gepaste funksie gekoppel het, kan u die kode in die 'knoppies' -funksie begin plaas:
previousNumber = Dubbel (etiket.teks!)!
as sender.tag == 12 {// Verdeel
label.text = "/";
}
as sender.tag == 13 {// Vermenigvuldig
label.text = "x";
}
if sender.tag == 14 {// Trek af
label.text = "-";
}
as sender.tag == 15 {// Voeg by
label.text = "+";
}
operasie = sender.tag
performingMath = waar;
}
anders as sender.tag == 16 {
as operasie == 12 {// Verdeel
label.text = String (previousNumber / numberOnScreen)
}
anders as bewerking == 13 {// Vermenigvuldig
label.text = String (previousNumber * numberOnScreen)
}
anders as bewerking == 14 {// Trek af
label.text = String (previousNumber - numberOnScreen)
}
anders as bewerking == 15 {// Voeg by
label.text = String (previousNumber + numberOnScreen)
}
}
anders as sender.tag == 11 {
label.text = ""
vorige nommer = 0;
numberOnScreen = 0;
operasie = 0;
}
In wese vertoon hierdie stuk kode een van die verskillende knoppies wanneer dit ingedruk word en gaan voort om die finale antwoord te bereken en vertoon dit op die etiket.
Stap 9: Volledige kode
As u nie saam met my die sakrekenaar wou stap nie, kan u die elemente eenvoudig by u storiebord voeg en die volledige kode in u view -kontroleerder plak en plak. Hier is die kode:
voer UIKit in
klas ViewController: UIViewController {
var numberOnScreen: Double = 0;
var vorige nommer: dubbel = 0;
var performingMath = false;
var operasie = 0;
@IBAction func -nommers (_ sender: UIButton) {
as performingMath == waar {
label.text = String (sender.tag-1)
numberOnScreen = Dubbel (etiket.teks!)!
performingMath = vals
}
anders {
label.text = label.text! + String (sender.tag-1)
numberOnScreen = Dubbel (etiket.teks!)!
}
}
@IBOutlet swak var etiket: UILabel!
@IBAction func -knoppies (_ sender: UIButton) {
as label.text! = "" && sender.tag! = 11 && sender.tag! = 16 {
previousNumber = Dubbel (etiket.teks!)!
as sender.tag == 12 {// Verdeel
label.text = "/";
}
as sender.tag == 13 {// Vermenigvuldig
label.text = "x";
}
if sender.tag == 14 {// Trek af
label.text = "-";
}
as sender.tag == 15 {// Voeg by
label.text = "+";
}
operasie = sender.tag
performingMath = waar;
}
anders as sender.tag == 16 {
as operasie == 12 {// Verdeel
label.text = String (previousNumber / numberOnScreen)
}
anders as bewerking == 13 {// Vermenigvuldig
label.text = String (previousNumber * numberOnScreen)
}
anders as bewerking == 14 {// Trek af
label.text = String (previousNumber - numberOnScreen)
}
anders as bewerking == 15 {// Voeg by
label.text = String (previousNumber + numberOnScreen)
}
}
anders as sender.tag == 11 {
label.text = ""
vorige nommer = 0;
numberOnScreen = 0;
operasie = 0;
}
}
ignoreer func viewDidLoad () {
super.viewDidLoad ()
// Doen enige ekstra opstelling nadat u die aansig gelaai het, gewoonlik vanaf 'n penpunt.
}
ignoreer func didReceiveMemoryWarning () {
super.didReceiveMemoryWarning ()
// Raak ontslae van die beskikbare hulpbronne.
}
}