2

現在のコンパス アプリでは、コンパスとレベルの間をスライドできます。Swift で同じ効果を作成するにはどうすればよいですか? さて、私は主に学習するアプリを作成しようとしています。右にスワイプするとフォントの選択が表示され、左にスワイプすると以前のメモのリストが表示されるメモ帳アプリを作成したいと考えています。これまでのところ、これは私のコードです

    var noteArray: Dictionary<String,String> = [:]
    var selectTextView = UIButton()
    var selectTextField = UITextField()
    var selectString: String = ""
    override func viewDidLoad() {
    super.viewDidLoad()
    self.view.backgroundColor = UIColor.whiteColor()
    var widthField = self.view.bounds.size.width - 10
    var heightField = self.view.bounds.size.height - 69 - 221 - 38
    println(heightField)
    println(widthField)
    var textFieldString: String! = ""
    //Set up resizable Button Image
    let buttonImage: UIImage = UIImage(named:"whiteButtonLong")
    let buttonImageHighlight: UIImage = UIImage(named:"whiteButtonHighlightLong")
    //Set up text field
    self.textView = UITextView(frame: CGRectMake(5, 64, widthField, heightField))
    self.textView.backgroundColor = UIColor.redColor()
    self.view.addSubview(self.textView)
    textView.becomeFirstResponder()
    //Set up the New button
    var newButtonString: String! = "New Note"
    var heightButton = 568 - heightField - 1000
    var widthButton = (widthField/2) - 2
    let floatInt: CInt = 3
    let newButton = UIButton(frame: CGRect(x: 5, y: 5, width: widthButton, height: 50))
    UIButton.buttonWithType(UIButtonType.System)
    newButton.setTitle(newButtonString,forState: UIControlState.Normal)
    newButton.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)
    newButton.setBackgroundImage(buttonImage, forState: UIControlState.Normal)
    newButton.setBackgroundImage(buttonImageHighlight, forState: UIControlState.Highlighted)
    /*newButton.backgroundColor = UIColor.cyanColor()
    newButton.layer.borderColor = UIColor.blackColor().CGColor
    let widthForBorder: CGFloat = 0.5
    newButton.layer.borderWidth = widthForBorder*/
    newButton.backgroundRectForBounds(CGRectMake(5, 5, widthButton, heightButton))
    newButton.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)
    newButton.layer.cornerRadius = 10
    newButton.clipsToBounds = true
    self.view.addSubview(newButton)
    //Set up select note
    let widthSelectField = widthButton - 10
    selectTextView = UIButton(frame: (CGRectMake(162, 5, widthButton, 50))) as UIButton
    selectTextView.setBackgroundImage(buttonImage, forState: UIControlState.Normal)
    selectTextView.setBackgroundImage(buttonImageHighlight, forState: UIControlState.Highlighted)
    self.view.addSubview(selectTextView)
    selectTextField = UITextField(frame: CGRectMake(170, 22.5, widthSelectField, 15))
    selectTextField.keyboardType = UIKeyboardType.NumberPad
    //selectTextField.backgroundColor = UIColor.blueColor()
    selectTextView.addTarget(self, action: "textViewAction:", forControlEvents: UIControlEvents.TouchUpInside)
    self.view.addSubview(selectTextField)
    selectTextField.text = selectString
    selectTextField.canBecomeFirstResponder()
    selectTextField.textAlignment = NSTextAlignment.Center
    selectTextField.placeholder = "Select Note"
    //Set up return button
    var returnButton: UIButton = UIButton(frame: CGRectMake(120, 315, 80, 30))
    returnButton.backgroundColor = UIColor.grayColor()
    returnButton.layer.cornerRadius = 10
    returnButton.layer.masksToBounds = true
    returnButton.layer.borderWidth = 2
    returnButton.layer.borderColor = UIColor.blackColor().CGColor
    returnButton.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)
    returnButton.setTitle("Return", forState: UIControlState.Normal)
    returnButton.addTarget(self, action: "returnButtonAction:", forControlEvents: UIControlEvents.TouchUpInside)
    self.view.addSubview(returnButton)

これは viewDidLoad() の外側にあります

func buttonAction(sender:UIButton!) {
        var noteArrayPlusOne = String(noteArray.count + 1)
        noteArray.updateValue(textView.text, forKey: noteArrayPlusOne)
        println(noteArray)
        textView.text = ""
    }
    func textViewAction(sender: UIButton!) {
        selectTextField.becomeFirstResponder()
    }
    func returnButtonAction(sender: UIButton!){
        //println("button was pressed")
        selectString = selectTextField.text
        println(selectString)
        textView.text = noteArray[selectString]
        selectTextField.text = ""
    }
4

1 に答える 1

2

UIScrollViewを使用したい。これにより、パンできるビューが得られます。

let scrollView: UIScrollView!

override func viewDidLoad() {
    super.viewDidLoad()
    self.scrollView = UIScrollView(frame: self.view.bounds)
    self.view.addSubview(self.scrollView)
}

サイズを設定するには、UIScrollView の contentSize プロパティを設定します。コンパス/レベル アプリの場合:

self.scrollView.contentSize = CGSize(width: 2 * theWidthOftheScreen, height: theHeightOfTheScreen)

スクロール ビューを左端または右端のスクロール位置に「スナップ」するには、ページングを有効にします。

self.scrollView.pagingEnabled = true

スクロール バーの色の変更や非表示など、他にも多くのプロパティがあります。

于 2014-06-14T23:07:59.500 に答える