2015-03-03 82 views
0

我有一個包含約30個圖像圖標的文件夾。我試圖讓用戶選擇30個「本地」圖像之一作爲他們的個人資料圖片。我期望找到最好的方法來做到這一點,但大多數教程都是爲了訪問相機膠捲並允許用戶上傳他們的照片。允許用戶在應用程序中選擇本地圖像Swift

我正在尋找一種方法,也許是一個UICollectionView,並允許他們選擇一個圖像,將成爲用戶圖標。我瞭解如何從iPhone本身提取圖像,但我正在使用的服務器目前沒有進行編碼以允許此過程發生。

什麼是最好的方式來使用應用程序內的圖像,並允許他們被放置到圖像視圖?

回答

0

UICollectionView是要走的路。

您需要先載入所有本地頭像文件名。以下示例將加載以avatar-開頭的app目錄中的所有圖像,忽略所有保留@2x.png文件。

func getAvatarFilenames() -> Array<String> { 
    var avatarFileNames = Array<String>() 
    var paths = NSBundle.mainBundle().pathsForResourcesOfType("png", inDirectory: nil) 
    for path in paths { 
     var imageName = path.lastPathComponent 

     // ignore retina images as when the uiimage loads them back out 
     // it will pick the retina version if required 
     if (imageName.hasSuffix("@2x.png")) { 
      continue 
     } 

     // only add images that are prefixed with 'avatar-' 
     if (imageName.hasPrefix("avatar-")) { 
      avatarFileNames.append(imageName) 
     } 
    } 

    return avatarFileNames 
} 

然後,您可以創建一個加載每個頭像文件名的UICollectionView。像這樣配置每個單元格(假設您的AvatarCell具有標籤1000的圖像 - 或更好,UICollectionViewCell子類)。

var cell = collectionView.dequeueReusableCellWithReuseIdentifier("AvatarCell", forIndexPath: indexPath) as UICollectionViewCell 
var avatarImageView = cell.viewWithTag(1000) as UIImageView 
avatarImageView.image = UIImage(named: avatarFileNames[indexPath.row]) 
相關問題