你如何在一个屏幕上有两个随机单词生成器

How do you have two random word generators on one screen

我目前正在开发一个应用程序,您可以在其中分别滑动 phone 屏幕的两半,当您向左滑动时,每一半都会生成一个随机单词。

我为屏幕的上半部分创建了一个随机生成单词的单词列表。我将如何对屏幕的下半部分应用同样的方法?我在视图控制器中有 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)
    }
}

您可以这样做。 如果你的背景保持不变,顶部和底部的颜色始终与星星相同,那么将其作为图像获取。

添加一个 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")
    }
}