Post

Replies

Boosts

Views

Activity

Check for systemItem inside an UIBarButtonItem override
Hi, I need to understand inside an override of UIBarButtonItem what is the systemItem of the button (done, add, trash, search, ...). Unfortunately at the moment the only method I found is to inspect the content of self.description (see below), but this solution, as well as being ugly, is very fragile because we can't be sure that the description will be the same also on future version of iOS / Swift. Someone know a better way to check for systemItem inside an UIBarButtonItem override class? Thank you class BarButtonItem: UIBarButtonItem {     override func awakeFromNib() {         super.awakeFromNib()         print(self.description)     } } <MyApp.BarButtonItem: 0x7fadbcacbea0> systemItem=Trash
3
0
1.2k
Feb ’22
PHCloudIdentifier without photo library access prompt
Hi, I'm currently let the user pick a photo using PHPickerViewController. The advantage of PHPickerViewController is that the user is not requested to grant photo access (no permission alerts). After the user picked the photo I need to take note of the local identifier and the cloud identifier (PHCloudIdentifier). For the local identifier no problem, I just use the assetIdentifier from the PHPickerResult. For obtaining the cloud identifier (PHCloudIdentifier, on iOS 15 only) I need to use the cloudIdentifierMappings method of PHPhotoLibrary. The problem of that method is that is causing the photo library access permission alerts to display. Someone know if there is another way to get the cloud identifier from a local identifier without having to prompt the user photo library access? Thank you
2
0
1.6k
Jan ’22
UIListContentConfiguration text color during selection
Hi, This is how I'm currently configuring an UICollectionView sidebar cell. let rowRegistration = UICollectionView.CellRegistration<UICollectionViewListCell, SidebarItem> { (cell, indexPath, item) in var contentConfiguration = UIListContentConfiguration.sidebarSubtitleCell() contentConfiguration.text = item.title contentConfiguration.secondaryText = item.subtitle contentConfiguration.image = item.image cell.contentConfiguration = contentConfiguration } In order to specify the selection background color of the cell I'm setting the backgroundConfiguration property. This work as expected: let rowRegistration = UICollectionView.CellRegistration<UICollectionViewListCell, SidebarItem> { (cell, indexPath, item) in var contentConfiguration = UIListContentConfiguration.sidebarSubtitleCell() contentConfiguration.text = item.title contentConfiguration.secondaryText = item.subtitle contentConfiguration.image = item.image cell.contentConfiguration = contentConfiguration var backgroundConfiguration = UIBackgroundConfiguration.listSidebarCell() backgroundConfiguration.backgroundColorTransformer = UIConfigurationColorTransformer { [weak cell] (color) in if let state = cell?.configurationState { if state.isSelected || state.isHighlighted { return UIColor(named: "Primary")! } } return .clear } cell.backgroundConfiguration = backgroundConfiguration } Now I also need to change the text color based on the cell selection. When the cell is selected the text should be white. I tried to set the colorTransformer of textProperties of contentConfiguration like so: contentConfiguration.textProperties.colorTransformer = UIConfigurationColorTransformer { [weak cell] (color) in if let state = cell?.configurationState { if state.isSelected || state.isHighlighted { return .white } } return .black } Unfortunately the text color does not change after the cell has been selected. What am I doing wrong? Can anyone help me? Thank you
3
0
3.4k
Jan ’22
Inset grouped table cells not aligned with large title
Hi, It seems that when using the inset grouped style in a UITableView, the cells are not aligned with the navigation bar large title. However, I've noticed that all Apple apps that seem to use this style (Settings, Notes) don't have this issue and the cells are perfectly aligned with the title. In the below example you can see that the cells of an inset grouped table are not aligned with the title (extra space between the red line and the cells) but the one's of the Apple apps are perfectly aligned. Do you know if there is a way to change the left and right cells margins of an inset grouped table in order to align them with the large title? Thank you
4
0
4.1k
Jan ’22
Crop image symbol to content
Hi, If I generate an image from a symbol the resulting image is surrounded by some margins. For example this code: let image = UIImage(systemName: "suit.heart") will generate this image: As you can see there are some margins around the content. There is a way to build an image cropped to the actual content, like showed in the below example? Thank you
Replies
0
Boosts
0
Views
1k
Activity
Mar ’22
Check for systemItem inside an UIBarButtonItem override
Hi, I need to understand inside an override of UIBarButtonItem what is the systemItem of the button (done, add, trash, search, ...). Unfortunately at the moment the only method I found is to inspect the content of self.description (see below), but this solution, as well as being ugly, is very fragile because we can't be sure that the description will be the same also on future version of iOS / Swift. Someone know a better way to check for systemItem inside an UIBarButtonItem override class? Thank you class BarButtonItem: UIBarButtonItem {     override func awakeFromNib() {         super.awakeFromNib()         print(self.description)     } } <MyApp.BarButtonItem: 0x7fadbcacbea0> systemItem=Trash
Replies
3
Boosts
0
Views
1.2k
Activity
Feb ’22
PHCloudIdentifier without photo library access prompt
Hi, I'm currently let the user pick a photo using PHPickerViewController. The advantage of PHPickerViewController is that the user is not requested to grant photo access (no permission alerts). After the user picked the photo I need to take note of the local identifier and the cloud identifier (PHCloudIdentifier). For the local identifier no problem, I just use the assetIdentifier from the PHPickerResult. For obtaining the cloud identifier (PHCloudIdentifier, on iOS 15 only) I need to use the cloudIdentifierMappings method of PHPhotoLibrary. The problem of that method is that is causing the photo library access permission alerts to display. Someone know if there is another way to get the cloud identifier from a local identifier without having to prompt the user photo library access? Thank you
Replies
2
Boosts
0
Views
1.6k
Activity
Jan ’22
UIListContentConfiguration text color during selection
Hi, This is how I'm currently configuring an UICollectionView sidebar cell. let rowRegistration = UICollectionView.CellRegistration<UICollectionViewListCell, SidebarItem> { (cell, indexPath, item) in var contentConfiguration = UIListContentConfiguration.sidebarSubtitleCell() contentConfiguration.text = item.title contentConfiguration.secondaryText = item.subtitle contentConfiguration.image = item.image cell.contentConfiguration = contentConfiguration } In order to specify the selection background color of the cell I'm setting the backgroundConfiguration property. This work as expected: let rowRegistration = UICollectionView.CellRegistration<UICollectionViewListCell, SidebarItem> { (cell, indexPath, item) in var contentConfiguration = UIListContentConfiguration.sidebarSubtitleCell() contentConfiguration.text = item.title contentConfiguration.secondaryText = item.subtitle contentConfiguration.image = item.image cell.contentConfiguration = contentConfiguration var backgroundConfiguration = UIBackgroundConfiguration.listSidebarCell() backgroundConfiguration.backgroundColorTransformer = UIConfigurationColorTransformer { [weak cell] (color) in if let state = cell?.configurationState { if state.isSelected || state.isHighlighted { return UIColor(named: "Primary")! } } return .clear } cell.backgroundConfiguration = backgroundConfiguration } Now I also need to change the text color based on the cell selection. When the cell is selected the text should be white. I tried to set the colorTransformer of textProperties of contentConfiguration like so: contentConfiguration.textProperties.colorTransformer = UIConfigurationColorTransformer { [weak cell] (color) in if let state = cell?.configurationState { if state.isSelected || state.isHighlighted { return .white } } return .black } Unfortunately the text color does not change after the cell has been selected. What am I doing wrong? Can anyone help me? Thank you
Replies
3
Boosts
0
Views
3.4k
Activity
Jan ’22
Inset grouped table cells not aligned with large title
Hi, It seems that when using the inset grouped style in a UITableView, the cells are not aligned with the navigation bar large title. However, I've noticed that all Apple apps that seem to use this style (Settings, Notes) don't have this issue and the cells are perfectly aligned with the title. In the below example you can see that the cells of an inset grouped table are not aligned with the title (extra space between the red line and the cells) but the one's of the Apple apps are perfectly aligned. Do you know if there is a way to change the left and right cells margins of an inset grouped table in order to align them with the large title? Thank you
Replies
4
Boosts
0
Views
4.1k
Activity
Jan ’22