Skocz do zawartości

Witaj!

Zaloguj lub Zarejestruj się aby uzyskać pełny dostęp do forum.

Zdjęcie
- - - - -

Swift - problem poczatkującego


  • Zaloguj się, aby dodać odpowiedź
5 odpowiedzi w tym temacie

#1 gpo

gpo
  • 28 postów

Napisano 11 sierpnia 2016 - 18:53

Witam, nie potrafie sobie poradzic, ani znalezc informacji na temat jak wyswietlic wybrany z case'a obrazek. Problem znajduje się pomiedzy dwoma "}"

import UIKit

class ViewController: UIViewController {

    let context = CIContext(options: nil)
    let inputImage1 = CIImage(image:UIImage(named:"1.jpg")!)
    let inputImage2 = CIImage(image:UIImage(named:"2.png")!)
    let inputImage3 = CIImage(image:UIImage(named:"3.jpg")!)
    let inputImage4 = CIImage(image:UIImage(named:"4.jpg")!)


    @IBOutlet weak var MainImg: UIImageView!
    @IBOutlet weak var ImgSelect: UIPageControl!
    @IBAction func SwitchButton(sender: AnyObject) {
        
        switch ImgSelect{
            
        case 0:
            inputImage1
            var inputedImage = inputImage1
            
        case 1:
            inputImage2
            var inputedImage = inputImage2
            
        case 2:
            inputImage3
            var inputedImage = inputImage3
            
        case 3:
            inputImage4
            var inputedImage = inputImage4
        
         default:
            inputImage1
        }
        
        
      ------------------------->>>>>>  MainImg.image = inputedImage
        
    }
   
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

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


}



#2 OneGhost

OneGhost
  • 296 postów

Napisano 11 sierpnia 2016 - 20:00

Opisz dokładniej co chcesz osiągnąć, bo nie do końca rozumiem. A tak na szybko:

@IBOutlet weak var MainImg: UIImageView!

@IBOutlet weak var ImgSelect: UIPageControl!
@IBAction func SwitchButton(sender: AnyObject)

 

nazwy funkcji i zmiennych powinno się zaczynać małą literą, czyli

 

@IBOutlet weak var mainImg: UIImageView!

@IBOutlet weak var imgSelect: UIPageControl!
@IBAction func switchButton(sender: AnyObject)

 

 

Robisz switch na instancji obiektu typu UIPageControl, a nie na żadnej jego wartości, być może chodziło o switch ImgSelect.currentPage

 

Ale napisz dokładnie co chcesz zrobić


Aha już chyba rozumiem o co chodziło :).

 

Więc tak: Po pierwsze nie twórz CIImage, tylko bezpośrednio UIImage, bo na tego typu obiekty możesz łatwo wyświetlić.

Po drugie w każdym case switcha niepotrzebnie tworzysz nowy var inputedImage. Kiedy program wyjdzie poza ten case, wartość tego var jest zapomniana i nie możesz jej użyć. Powinieneś utworzyć zmienną przed switchem, a w switchu wpisać wartość do tej zmiennej, nie tworzyć nowej. Spróbuj mniej więcej tak:

 

    let inputImage1 = UIImage(named:"1.jpg")!

    let inputImage2 = UIImage(named:"2.png")!

    let inputImage3 = UIImage(named:"3.jpg")!

    let inputImage4 = UIImage(named:"4.jpg")!

    

    @IBOutlet weak var mainImg: UIImageView!

    @IBOutlet weak var imgSelect: UIPageControl!

    

    @IBAction func switchButton(sender: AnyObject) {

        

        let inputedImage: UIImage

        

        switch imgSelect.currentPage {

            

        case 0:

            inputedImage = inputImage1

        case 1:

            inputedImage = inputImage2

        case 2:

            inputedImage = inputImage3

        case 3:

            inputedImage = inputImage4

        default:

            inputedImage = inputImage1

        }

        mainImg.image = inputedImage

    }


Tylko wydaje mi się, że może chcesz coś dodatkowego jeszcze zrobić, bo nie wiem co tu ma robić ten imSelect. Napisz dokładniej to pomogę :)



#3 gpo

gpo
  • 28 postów

Napisano 11 sierpnia 2016 - 22:49

Z poradnika kolegi z forum [link](http://myapple.pl/po...podstawy-jezyka) próbowałem napisac app ktora za zadanie mmiala za pomoca Page Controlera zmieniac 4 zdjecia, to tyle. Mimo wszystko nie moge doszukac sie jakichkolwiek informacji. Szczerze czuje sie troche jak dziecko we mgle.. 

import UIKit

class ViewController: UIViewController {
    
    let inputImage1 = UIImage(named:"1.jpg")!
    let inputImage2 = UIImage(named:"2.png")!
    let inputImage3 = UIImage(named:"3.jpg")!
    let inputImage4 = UIImage(named:"4.jpg")!


    @IBOutlet weak var mainImg: UIImageView!
    @IBOutlet weak var imgSelect: UIPageControl!
    @IBAction func switchButton(sender: AnyObject) {
        
        let images = ["inputImage1", "inputImage2", "inputImage3", "inputImage4"]
        MainImg.image = UIImage(named: images[0])
      
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

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


}

bardzo doceniam Twoja pomoc!



#4 OneGhost

OneGhost
  • 296 postów

Napisano 12 sierpnia 2016 - 07:11

W tym tutorialu nie użyto PageControl, tylko SegmentedControl. Zrobiłem krótki filmik pokazujący jak to mniej więcej można zrobić. Trochę jest inaczej niż na tamtym tutorialu, bo tam obrazek jest dynamicznie modyfikowany, a z tego co rozumiem ty chcesz tylko wczytywać obrazki (stąd my nie musimy też używać CIImage). Daj znać jak coś jeszcze trzeba wytłumaczyć.

https://youtu.be/aEA_EO0DL98



#5 gpo

gpo
  • 28 postów

Napisano 12 sierpnia 2016 - 12:39

Damian dzieki Tobie udało mi się to ;) ! Wielki props dla Ciebie! Do swojego użyłem PageControl i działa bez problemu.

Teraz będę probował połączyć PageControl z przesunieciem palcem w prawo badz w lewo do zmiany zdjecia.

Mam też pytanie czy mogłbym udostepnić Twój link jako odp na moje pytaine na StackOverflow?

Moze ty wiesz gdzie znajde jakies pisemne tutoriale (ponieważ jestem za granica i korzystam z internetu mobilnego z limitem danych, a w wolnym czasie chciałbym się czegoś nowego nauczyc). 



#6 OneGhost

OneGhost
  • 296 postów

Napisano 12 sierpnia 2016 - 16:14

Damian dzieki Tobie udało mi się to ;) ! Wielki props dla Ciebie! Do swojego użyłem PageControl i działa bez problemu.

Teraz będę probował połączyć PageControl z przesunieciem palcem w prawo badz w lewo do zmiany zdjecia.

Mam też pytanie czy mogłbym udostepnić Twój link jako odp na moje pytaine na StackOverflow?

Moze ty wiesz gdzie znajde jakies pisemne tutoriale (ponieważ jestem za granica i korzystam z internetu mobilnego z limitem danych, a w wolnym czasie chciałbym się czegoś nowego nauczyc). 

Możesz dać na stackoverflow jeśli chcesz. W sumie znam dobre tutoriale, ale w formie video, więc nie wiem czy ci tak pasuje. Jeśli tak to poszukaj w itunes "Stanford iOS".






Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych