我使用UICollectionView显示了单元格(0到9和确定,取消按钮)。
以下是我想要的:
以下是我所做的代码:
var items = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "Cancel","0", "OK"]
...
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! CustomCollectionViewCell
cell.lblNumber!.text = self.items[indexPath.item]
if (self.items[indexPath.item])=="Cancel" {
cell.hidden = true;
}
if (self.items[indexPath.item])=="OK" {
cell.hidden = true;
}
return cell
}
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
print("You selected cell #\(indexPath.item) and value : \(self.items[indexPath.item]) count : \(counter)")
...
}
如何实现这一目标?
答案 0 :(得分:1)
if "OK" & "CANCEL" both buttons are hidden first , you can use the textfield in which the text is printed by pressing any button .
if textfield.text == "" {
okbutton.ishidden == true
cancel button.ishdden == true
}else if textfield.text != "" {
okbutton.ishidden == false
cancel button.ishdden == false
}
答案 1 :(得分:0)
嗨,这里是回答示例:
import UIKit
class ViewController: UIViewController {
var objectNumCollectionViewCell : NumCollectionViewCell = NumCollectionViewCell()
@IBOutlet weak var lblnumber: UILabel!
var items = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "Cancel","0", "OK"]
var strnum: String = ""
@IBOutlet weak var collectionviewMain: UICollectionView!
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.
}
// MARK: - CollectionView DataSource Method
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int{
return items.count
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell{
objectNumCollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! NumCollectionViewCell
objectNumCollectionViewCell.lblNum.text = items[indexPath.item] as String
if indexPath.item == 9 {
if lblnumber.text?.characters.count > 0 {
objectNumCollectionViewCell.hidden = false
}
else{
objectNumCollectionViewCell.hidden = true
}
}
else
{
objectNumCollectionViewCell.hidden = false
}
if indexPath.item == 11 {
if strnum.characters.count > 3 {
objectNumCollectionViewCell.hidden = false
}
else{
objectNumCollectionViewCell.hidden = true
}
}
objectNumCollectionViewCell.layer.borderWidth = 1.0
objectNumCollectionViewCell.layer.borderColor = UIColor.darkGrayColor().CGColor
objectNumCollectionViewCell.layer.cornerRadius = 10.0
objectNumCollectionViewCell.layer.masksToBounds = true
return objectNumCollectionViewCell
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets{
return UIEdgeInsetsMake(0, 5, 0, 5);
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize{
return CGSizeMake(self.view.frame.size.width/3-10, 100)
}
// MARK: - CollectionView Delegate Method
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath){
objectNumCollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! NumCollectionViewCell
if indexPath.item == 9 {
strnum.removeAtIndex(strnum.endIndex.predecessor())
}
else if indexPath.item == 11{
let alert:UIAlertView = UIAlertView(title: "Number Demo", message: "You have Pressed Ok", delegate: nil, cancelButtonTitle: "ok")
dispatch_async(dispatch_get_main_queue(), {
alert.show()
})
}
else
{
if strnum.characters.count < 4 {
strnum.append(Character(items[indexPath.item] as String))
}
}
lblnumber.text = strnum
collectionviewMain.reloadData()
}
}
// Custom cell class
// identifier = "cell"
import UIKit
class NumCollectionViewCell: UICollectionViewCell {
@IBOutlet weak var lblNum: UILabel! // please declare label in storyboard
}