- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一组图像,显示在 Collection View 中,当我单击打开图像选择器的最后一个单元格时,我创建了一个单元格。 -> 可以在该单元格中设置所选图像,并自动添加最后一个新单元格。 (我对此一无所知,请帮忙,谢谢)
CollectionView 类
class ViewController: UIViewController,UICollectionViewDelegate,UICollectionViewDataSource,UIImagePickerControllerDelegate,UINavigationControllerDelegate
{
var imagePicker = UIImagePickerController()
let reuseIdentifier = "cell" // also enter this string as the cell identifier in the storyboard
var items = ["1", "2", "3", "4", "5"]
@IBOutlet var collectionView: 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: - UICollectionViewDataSource protocol
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.items.count
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! MyCollectionViewCell
// cell.backgroundColor = UIColor.cyanColor()
cell.btnSelectImage.setTitle(items[indexPath.row], forState: .Normal)
cell.btnSelectImage.tag = indexPath.row
cell.btnSelectImage.addTarget(self,action:#selector(buttonClicked),
forControlEvents:.TouchUpInside)
return cell
}
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath)
{
if indexPath.row == 0
{
// call your alert here
}
}
func buttonClicked(sender:UIButton)
{
let alertController: UIAlertController = UIAlertController(title: "Please choose a Picture".localized, message: nil, preferredStyle: UIAlertControllerStyle.ActionSheet)
let cameraAction = UIAlertAction(title: "Camera".localized, style: UIAlertActionStyle.Default){
UIAlertAction in
self.openCamera()
}
let gallaryAction = UIAlertAction(title: "Gallery".localized, style: UIAlertActionStyle.Default){
UIAlertAction in
self.openGallary()
}
let cancelAction = UIAlertAction(title: "Cancel".localized, style: UIAlertActionStyle.Cancel){
UIAlertAction in
}
alertController.addAction(cameraAction)
alertController.addAction(gallaryAction)
alertController.addAction(cancelAction)
if UIDevice.currentDevice().userInterfaceIdiom == .Phone{
self.presentViewController(alertController, animated: true, completion: nil)
}
}
//MARK: - UIImagepickercontroller Method -
func openCamera()
{
if UIImagePickerController.availableCaptureModesForCameraDevice(.Rear) != nil
{
imagePicker.allowsEditing = true
imagePicker.sourceType = UIImagePickerControllerSourceType.Camera
imagePicker.showsCameraControls = true
imagePicker.cameraCaptureMode = .Photo
imagePicker.takePicture()
if UIDevice.currentDevice().userInterfaceIdiom == .Phone
{
self.presentViewController(imagePicker, animated: true, completion: nil)
}
}
else
{
noCamera()
}
}
func openGallary()
{
if UIDevice.currentDevice().userInterfaceIdiom == .Phone
{
imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
self.presentViewController(imagePicker, animated: true, completion: nil)
imagePicker.allowsEditing = true
}
else
{
imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
}
}
func noCamera()
{
let alertVC = UIAlertController(title: "ok", message: "Device has no camera".localized, preferredStyle: UIAlertControllerStyle.Alert)
let okAction = UIAlertAction(title: "OK".localized, style: UIAlertActionStyle.Default, handler: nil)
alertVC.addAction(okAction)
presentViewController(alertVC, animated: true, completion: nil)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject])
{
let timestamp = Int(NSDate().timeIntervalSince1970)
let choosenImage = info[UIImagePickerControllerEditedImage] as! UIImage
var indexPath = NSIndexPath(forRow: 0, inSection: 0)
let cell = collectionView.cellForItemAtIndexPath(indexPath) as! MyCollectionViewCell
cell.btnSelectImage.setBackgroundImage(choosenImage, forState: .Normal)
collectionView.reloadData()
dismissViewControllerAnimated(true, completion: nil)
}
func imagePickerControllerDidCancel(picker: UIImagePickerController)
{
dismissViewControllerAnimated(true, completion: nil)
}
}
CollcetionViewCell
class MyCollectionViewCell: UICollectionViewCell
{
@IBOutlet var btnSelectImage: UIButton!
}
-创建图片数组,显示在collectionview中
最佳答案
请仅编辑方法并添加一些方法:
var imagePicker = UIImagePickerController()
var selectedImage : UIImage?
override func viewDidLoad() {
super.viewDidLoad()
imagePicker.delegate = self
// Do any additional setup after loading the view, typically from a nib.
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! MyCollectionViewCell
cell.btnSelectImage.setTitle(items[indexPath.row], forState: .Normal)
cell.btnSelectImage.addTarget(self,action:#selector(buttonClicked),
forControlEvents:.TouchUpInside)
cell.btnSelectImage.setBackgroundImage(selectedImage, forState: .Normal)//setBackground image of button
return cell
}
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath)
{
//because need open imagePicker only last cell
//IF YOU WANT TO OPEN IMAGEPICKER CLICK ON BUTTON THEN ADD COMMENT BELOW LINE
if indexPath.row == self.items.count-1
{
self.configuringImagePickerController()
}
}
func buttonClicked(sender:UIButton)
{
self.configuringImagePickerController()//If you want open imagepicker click on button
}
func configuringImagePickerController()
{
let alertController: UIAlertController = UIAlertController(title: "Please choose a Picture".localized, message: nil, preferredStyle: UIAlertControllerStyle.ActionSheet)
let cameraAction = UIAlertAction(title: "Camera".localized, style: UIAlertActionStyle.Default){
UIAlertAction in
self.openCamera()
}
let gallaryAction = UIAlertAction(title: "Gallery".localized, style: UIAlertActionStyle.Default){
UIAlertAction in
self.openGallary()
}
let cancelAction = UIAlertAction(title: "Cancel".localized, style: UIAlertActionStyle.Cancel){
UIAlertAction in
}
alertController.addAction(cameraAction)
alertController.addAction(gallaryAction)
alertController.addAction(cancelAction)
self.presentViewController(alertController, animated: true, completion: nil)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject])
{
selectedImage = info[UIImagePickerControllerEditedImage] as! UIImage
collectionView.reloadData()
dismissViewControllerAnimated(true, completion: nil)
}
关于swift - 如何在单元格末尾添加 CollectionView 自定义单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41340097/
我创建了一个用户可以添加测试的字段。这一切运行顺利我只希望当用户点击(添加另一个测试)然后上一个(添加另一个测试)删除并且这个显示在新字段中。 所有运行良好的唯一问题是点击(添加另一个字段)之前添加另
String[] option = {"Adlawan", "Angeles", "Arreza", "Benenoso", "Bermas", "Brebant
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在努力将 jQuery 滚动功能添加到 nav-tab (Bootstrap 3)。我希望用户能够选择他们想要的选项卡,并在选项卡内容中有一个可以平滑滚动到 anchor 的链接。这是我的代码,可
我正在尝试在用户登录后再添加 2 个 ui 选项卡。首先,我尝试做一个之后。 $('#slideshow').tabs('remove', '4'); $("#slideshow ul li:last
我有一个包含选择元素的表单,我想通过选择添加和删除其中一些元素。这是html代码(这里也有jsfiddle http://jsfiddle.net/txhajy2w/):
正在写这个: view.backgroundColor = UIColor.white.withAlphaComponent(0.9) 等同于: view.backgroundColor = UICo
好的,如果其中有任何信息,我想将这些列添加到一起。所以说我有 账户 1 2 3 . 有 4 个帐户空间,但只有 3 个帐户。我如何创建 java 脚本来添加它。 最佳答案 Live Example H
我想知道是否有一种有效的预制算法来确定一组数字的和/差是否可以等于不同的数字。示例: 5、8、10、2,使用 + 或 - 等于 9。5 - 8 = -3 + 10 = 7 + 2 = 9 如果有一个预
我似乎有一个卡住的 git repo。它卡在所有基本的添加、提交命令上,git push 返回所有内容为最新的。 从其他帖子我已经完成了 git gc 和 git fsck/ 我认为基本的调试步骤是
我的 Oracle SQL 查询如下- Q1- select hca.account_number, hca.attribute3, SUM(rcl.extended_amou
我正在阅读 http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingG
我正在尝试添加一个“加载更多”按钮并限制下面的结果,这样投资组合页面中就不会同时加载 1000 个内容,如下所示:http://typesetdesign.com/portfolio/ 我对 PHP
我遇到这个问题,我添加了 8 个文本框,它工作正常,但是当我添加更多文本框(如 16 个文本框)时,它不会添加最后一个文本框。有人遇到过这个问题吗?提前致谢。 Live Link: JAVASCRIP
add/remove clone first row default not delete 添加/删除克隆第一行默认不删除&并获取正确的SrNo(例如:添加3行并在看到问题后删除SrNo.2)
我编码this ,但删除按钮不起作用。我在控制台中没有任何错误.. var counter = 0; var dataList = document.getElementById('materi
我有一个类似数组的对象: [1:数组[10]、2:数组[2]、3:数组[2]、4:数组[2]、5:数组[3]、6:数组[1]] 我正在尝试删除前两个元素,执行一些操作,然后将它们再次插入到同一位置。
使用的 Delphi 版本:2007 你好, 我有一个 Tecord 数组 TInfo = Record Name : String; Price : Integer; end; var Info
我使用了基本的 gridster 代码,然后我声明了通过按钮添加和删除小部件的函数它工作正常但是当我将调整大小功能添加到上面的代码中时,它都不起作用(我的意思是调整大小,添加和删除小部件) 我的js代
title 323 323 323 title 323 323 323 title 323 323 323 JS $(document).keydown(function(e){
我是一名优秀的程序员,十分优秀!