Sie müssen eine Reihe von URLs halten ähnlich, wie Sie eine imagearray
und categoryarray
haben. Sie werden diese URLs an der Stelle erstellen, an der Sie Ihre Kategorien und Bilder erstellen, vermute ich.
Ich empfehle auch Swift CamelCase Benennungskonventionen für Variablen (zum Beispiel, ImageArray 'und' KategorieArray ').
Da jede Zelle in Ihrer Sammlungsansicht eine eindeutige Einheit mit einem Bild, einem Kategorietitel und einer URL ist, ist es sinnvoll, ein einzelnes Array von Strukturen anstelle von drei separaten Arrays zu speichern.
struct SocialMediaSite {
var image: UIImage
var title: String
var URL: NSURL
}
Wenn Sie dies tun, dann in Ihrem View-Controller können Sie nur ein einzelnes Array halten: data: [SocialMediaSite]
. Stellen Sie sicher, dass Sie dieses Array mit den entsprechenden Daten an denselben Stellen festlegen, an denen Sie die Arrays für Bilder und Kategorien festgelegt haben. Hier müssen Sie auch die URLs für die Websites festlegen, denen die einzelnen Zellen entsprechen sollen. Sie erstellen ein NSURL mit NSURL(string: "http://www.somesite.com")
und speichern es in der Variablen URL
.
ein einzelnes Datenarray, Ihre Funktion (nach Swift Namenskonventionen auch) wird wie folgt aussehen:
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionview.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! CollectionViewCell1
cell.imageOpenView.image = data[indexPath.row].image
cell.titleLabel .text = data[indexPath.row].title
return cell
}
Diese Ihre Zellen in der UICollectionView angezeigt werden, wie Sie zur Zeit der Dinge haben. Um nun eine Anfrage auf eine Website in Ihrem UIWebView zu laden, wenn Sie auf eine Zelle tippen, müssen Sie eine weitere der UICollectionViewDelegate
Methoden implementieren: func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath)
. Dies wird immer dann aufgerufen, wenn ein Benutzer auf eine Zelle klickt.
In dieser Funktion könnte tun Sie etwas wie folgt:
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
let selectedCellData = data[indexPath.row]
let url = selectedCellData.URL // This is the website you want to go to for the cell you just tapped
webView.loadRequest(NSURLRequest(URL: url)) // Tell the webView to load this URL
...
}
Sie auch Ihre View-Controller werden die Delegierten des UIWebView betrachten möchten, die, wenn Sie irgendwelche Aktionen ausführen möchten, während der Web-Seite Laden oder wenn beim Laden der Webseite für diese URL ein Fehler aufgetreten ist.
Vielen Dank dafür. Ich werde weitermachen und es ausprobieren und meinen Beitrag aktualisieren. Ich bin ein Anfänger, also entschuldige meine Fehler. Thnx für die Hilfe – Nilesh