2016-05-07 1 views
0

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

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

import UIKit 

class ViewController: UIViewController { 
    // put the labels and the buttons 
    @IBOutlet var InspirationalThought: UILabel! 
    @IBOutlet var Click: UIButton! 

    //what the label is going to show 

    var quotes = ["Geometrics", "Vectors", "Celebration", "Triangle",  "Landscapes", "Seasons", "Snow", "Rain", "Sunrays", "Stencils", "Paint", "Graphics", "Graffiti", "Sports","Fashion","Ancient Greek", "Philosophers", "Fairy tales", "Fantasy", "Clouds", "Mystery", "Time Clocks", "Canvas", "Tie-dye", "Glitter", "Dessert", "Desert", "Energy", "Astrology", "Solar Systems", "Sea", "Beach", "Sphere", "Roots", "Lights", "Darks", "Fire", "Air", "Aperture", "Long exposure", "Portraits", "World", "Travel", "Architecture", "Freedom", "Old", "New", "Urban", "Lenses", "Fisheye", "Chords", "Music notes", "Spices", "Herbs", "Natural", "Marbles", "Wood", "Trees", "Forests", "Interior","Mammals", "Reptiles", "Ocean", "Birds", "Photography", "Exposure", "Opaque", "Translucent", "Freestyle", "Spots", "Stripes", "Zig Zag", "Spiral", "Glass", "Feathers", "Calm", "Bulb", "Heat", "Cold", "Stitches", "Views", "Birds", "Sunset", "Earth"] 

    var whichQuotestoChoose = 0 

    // what the button is going to show 
    var ButtonText = ["Inspiration", "Tell me more", "more inspirational"] 
    var whichButtonTexttoChoose = 0 

    @IBAction func ClickButtonClicked(sender: UIButton) { 
     chooseAQuote() 
     chooseTextonButton() 
    } 

    func chooseAQuote(){ 
     showTheQuote() 
     whichQuotestoChoose = Int(arc4random_uniform (84)) 
    } 

    func showTheQuote(){ 
     InspirationalThought.text = "\(quotes[whichQuotestoChoose])" 
    } 

    func chooseTextonButton(){ 
     Click.setTitle("\(ButtonText[whichButtonTexttoChoose])", forState:UIControlState.Normal) 
    } 
} 

enter image description here

enter image description here

+0

Так какой экран вы ищете слишком andhas код был добавлен для этого ответа? Это только один раз. VC –

+0

Первый экран - это то, что у меня есть сейчас, и это код. да его единственный один VC. Второй экран - это то, что я хочу, чтобы он тоже выглядел как скриншот раскадровки. –

ответ

1

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

Добавить ImageView и установить изображение в качестве фонового изображения

Добавить 2 UIView-х view1 и view2 в верхней и нижней точки зрения. Установите цвет фона как clearColor и отметьте как 1 и 2 соответственно

Добавить салфетку 2 из них с тем же селектором.

Добавить UILabel для каждого вида вида label1 и label2.

Создайте строку для хранения текста из кавычек при смене. На основе тега представления установите соответствующий текст ярлыка.

Ниже приводится пример реализации:

import UIKit 

class ViewController: UIViewController { 

@IBOutlet weak var view1: UIView! 
@IBOutlet weak var view2: UIView! 
@IBOutlet weak var label1: UILabel! 
@IBOutlet weak var label2: UILabel! 

var displayString: String? 
var quotes = ["Geometrics", "Vectors", "Celebration", "Triangle",  "Landscapes", "Seasons", "Snow", "Rain", "Sunrays", "Stencils", "Paint", "Graphics", "Graffiti", "Sports","Fashion","Ancient Greek", "Philosophers", "Fairy tales", "Fantasy", "Clouds", "Mystery", "Time Clocks", "Canvas", "Tie-dye", "Glitter", "Dessert", "Desert", "Energy", "Astrology", "Solar Systems", "Sea", "Beach", "Sphere", "Roots", "Lights", "Darks", "Fire", "Air", "Aperture", "Long exposure", "Portraits", "World", "Travel", "Architecture", "Freedom", "Old", "New", "Urban", "Lenses", "Fisheye", "Chords", "Music notes", "Spices", "Herbs", "Natural", "Marbles", "Wood", "Trees", "Forests", "Interior","Mammals", "Reptiles", "Ocean", "Birds", "Photography", "Exposure", "Opaque", "Translucent", "Freestyle", "Spots", "Stripes", "Zig Zag", "Spiral", "Glass", "Feathers", "Calm", "Bulb", "Heat", "Cold", "Stitches", "Views", "Birds", "Sunset", "Earth"] 

var whichQuotestoChoose = 0 

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

    let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.viewSwipped(_:))) 
    swipeLeft.direction = UISwipeGestureRecognizerDirection.Left 
    view1.addGestureRecognizer(swipeLeft) 

    let swipeLeft1 = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.viewSwipped(_:))) 
    swipeLeft1.direction = UISwipeGestureRecognizerDirection.Left 
    view2.addGestureRecognizer(swipeLeft1) 
} 

func viewSwipped(gesture: UIGestureRecognizer) { 
    self.chooseAQuote() 
    if let swippedView = gesture.view { 
     if swippedView.tag == 1 { 
      label1.leftToRightAnimation() 
      label1.text = displayString 
     } else { 
      label2.leftToRightAnimation() 
      label2.text = displayString 
     } 
    } 
} 

func chooseAQuote() { 
    displayString = quotes[whichQuotestoChoose] 
    whichQuotestoChoose = Int(arc4random_uniform (84)) 
} 

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


} 

extension UIView { 
    func leftToRightAnimation(duration: NSTimeInterval = 0.5, completionDelegate: AnyObject? = nil) { 
    // Create a CATransition object 
    let leftToRightTransition = CATransition() 

    // Set its callback delegate to the completionDelegate that was provided 
    if let delegate: AnyObject = completionDelegate { 
     leftToRightTransition.delegate = delegate 
    } 

    leftToRightTransition.type = kCATransitionPush 
    leftToRightTransition.subtype = kCATransitionFromRight 
    leftToRightTransition.duration = duration 
    leftToRightTransition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut) 
    leftToRightTransition.fillMode = kCAFillModeRemoved 

    // Add the animation to the View's layer 
    self.layer.addAnimation(leftToRightTransition, forKey: "leftToRightTransition") 
    } 
} 

enter image description here

+0

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

+0

Нет. Это просто изменит текст ярлыка. Swipe установлен на vie, поэтому везде, где вы будете прокручивать слово, будет изменено. Вы можете добавить анимацию, чтобы добавить эту функцию. –

+0

Где я могу разместить пример кода в своем коде? и как бы я закодировал нижний список слов? –

Смежные вопросы