如何从 ImagePicker 控制器在单元格 class 中设置图像
How do I set an image in a cell class from a ImagePicker Controller
我正在尝试将按钮的图像更改为用户在 imagePicker 中选择的图像,但我在 ViewController class 中显示图像选择器并且按钮是在 class.
单元格中
我不确定如何从另一个 class 设置它。这是我用于显示图像选择器和创建按钮的方式的代码:
这是我的个人资料VC class:
class UserProfileVC: UICollectionViewController, UICollectionViewDelegateFlowLayout, UserProfileHeaderDelegate {
func handleEditBannerTapped(for header: ProfileHeader) {
let imagePicker = UIImagePickerController()
imagePicker.allowsEditing = true
present(imagePicker, animated: true, completion: nil)
}
}
以上代码运行良好,可以呈现设备上的所有图片供用户选择。
这是我的 ProfileHeader 单元格 class
class ProfileHeader: UICollectionViewCell, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
lazy var profileBanner: UIButton = {
let button = UIButton()
button.clipsToBounds = true
let imageTapped = UITapGestureRecognizer(target: self, action: #selector(handleBannerTapped))
imageTapped.numberOfTapsRequired = 1
button.isUserInteractionEnabled = true
button.addGestureRecognizer(imageTapped)
return button
}()
@objc func handleBannerTapped() {
delegate?.handleEditBannerTapped(for: self)
}
}
如何设置用户从 UserProfileVC 选择的图像到 profileBanner 按钮 class?
我假设 UserProfileVC
是主 class,它包含一个集合视图,而 ProfileHeader
是该集合视图中的一个单元格?你需要知道单元格的IndexPath
,然后做:
if let cell = collectionView.cellForItem(at: indexPath) as? ProfileHeader {
cell.profileBanner.setImage(imageThatYouWant, for: .normal)
}
我正在尝试将按钮的图像更改为用户在 imagePicker 中选择的图像,但我在 ViewController class 中显示图像选择器并且按钮是在 class.
单元格中我不确定如何从另一个 class 设置它。这是我用于显示图像选择器和创建按钮的方式的代码:
这是我的个人资料VC class:
class UserProfileVC: UICollectionViewController, UICollectionViewDelegateFlowLayout, UserProfileHeaderDelegate {
func handleEditBannerTapped(for header: ProfileHeader) {
let imagePicker = UIImagePickerController()
imagePicker.allowsEditing = true
present(imagePicker, animated: true, completion: nil)
}
}
以上代码运行良好,可以呈现设备上的所有图片供用户选择。
这是我的 ProfileHeader 单元格 class
class ProfileHeader: UICollectionViewCell, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
lazy var profileBanner: UIButton = {
let button = UIButton()
button.clipsToBounds = true
let imageTapped = UITapGestureRecognizer(target: self, action: #selector(handleBannerTapped))
imageTapped.numberOfTapsRequired = 1
button.isUserInteractionEnabled = true
button.addGestureRecognizer(imageTapped)
return button
}()
@objc func handleBannerTapped() {
delegate?.handleEditBannerTapped(for: self)
}
}
如何设置用户从 UserProfileVC 选择的图像到 profileBanner 按钮 class?
我假设 UserProfileVC
是主 class,它包含一个集合视图,而 ProfileHeader
是该集合视图中的一个单元格?你需要知道单元格的IndexPath
,然后做:
if let cell = collectionView.cellForItem(at: indexPath) as? ProfileHeader {
cell.profileBanner.setImage(imageThatYouWant, for: .normal)
}