Search results for

“column”

2,085 results found

Post

Replies

Boosts

Views

Activity

Reply to SwiftData crash on fetch
I have some potential progress, but due to the nature of this crash, I don't know if this is correct or not. After inspecting the sqlite-files that represents the backingdata, I discovered that a property backed by an integer was set to null after migration even the original value was 3. Upon inspection, I realized this was the very first property I ever migrated, so it was still annotated with @Attribute(orginalName: propertyName), even tho the migration which crashed for me was the 9th migration step overall for the app. Thus, with the Schema I was migrating from being: struct SchemaV7 { @Model class Item { @Attribute(originalName: propertyName) var newPropertyName: Int } } And then removing it in the destination Schema: struct SchemaV8 { @Model class Item { var newPropertyName: Int } } made me able to complete the migration without crashing. Wether this was the solution or not, I have no idea, but it could explain some of the crashes I've seen earlier... The property which was crashing the app have never b
Jun ’25
Filtered dataFrame displays original dataFrame values
I'm importing a csv file of 299 rows and creating a subset by filtering on one column value (24 rows). I want to Chart just the filtered values. However, when I print one column I get values from the original dataFrame. Any suggestions? Thanks, David The code: import SwiftUI import Charts import TabularData struct DataPoint: Identifiable { var id = UUID() // This makes it conform to Identifiable var date: Date var value: Double } struct ContentView: View { @State private var dataPoints: [DataPoint] = [] var body: some View { Text(Hello) Chart { ForEach(dataPoints) { dataPoint in PointMark( x: .value(Date, dataPoint.date), y: .value(Value, dataPoint.value) ) } } .frame(height: 300) .padding() .onAppear(perform: loadData) } func loadData() { print(In Loading Data) // Load the CSV file if let url = Bundle.main.url(forResource: observations, withExtension: csv) { do { let options = CSVReadingOptions(hasHeaderRow: true, delimiter: ,) var data0 = try DataFrame(contentsOfCSVFile: url, options: opti
2
0
134
May ’25
What is the first reliable position of the apple vision pro device?
In several visionOS apps, we readjust our scenes to the user's eye level (their heads). But, we have encountered issues whereby the WorldTrackingProvider returns bad/incorrect positions for the first x number of frames. See below code which you can copy paste in any Immersive Space. Relaunch the space and observe the numberOfBadWorldInfos value is inconsistent. a. what is the most reliable way to get the devices's position? b. is this indeed a bug? c. are we using worldInfo improperly? d. as a workaround, in our apps we set to 10 the number of frames to let pass before using worldInfo, should we set our threshold differently? import ARKit import Combine import OSLog import SwiftUI import RealityKit import RealityKitContent let SUBSYSTEM = Bundle.main.bundleIdentifier! struct ImmersiveView: View { let logger = Logger(subsystem: SUBSYSTEM, category: ImmersiveView) let session = ARKitSession() let worldInfo = WorldTrackingProvider() @State var sceneUpdateSubscription: EventSubscription? = nil @State var deviceTr
3
0
157
May ’25
CollectionViewCell switch back to single column once UImage is assigned
Hi I am building a simple multi column CollectionView here and trying to add 3 cell in a row. Well, in short the column and rows looks all fine if I comment the below code. which is no image and text assigned to cells. let framework = list[indexPath.item] cell.configure(framework) However, once uncommented, only a single cell is displayed per row and the image doesn't seem to be resizing automatically. Can you please advise. Below is the ViewController. import UIKit class FrameworkListViewController: UIViewController { @IBOutlet weak var collectionView: UICollectionView! let list: [AppleFramework] = AppleFramework.list override func viewDidLoad() { super.viewDidLoad() collectionView.dataSource = self collectionView.delegate = self } } extension FrameworkListViewController: UICollectionViewDataSource { func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return list.count } func collectionView(_ collectionView: UICollectionView, cellForItemA
Topic: UI Frameworks SubTopic: UIKit
1
0
55
May ’25
Mac Catalyst SplitViewController, UITitlebar bugs?
Bringing my iPad app to Mac Catalyst as iPad idiom. Primary interface is a UISplitViewController. Two things I think are bugs unless someone replies with a fix. SplitViewController is setup in two column with left column as sidebar: split.setViewController(primary, for: .primary) split.setViewController(secondary, for: .secondary) split.preferredDisplayMode = .oneBesideSecondary split.preferredSplitBehavior = .tile split.presentsWithGesture = true #if targetEnvironment(macCatalyst) split.primaryBackgroundStyle = .sidebar split.displayModeButtonVisibility = .never #endif The displayMode button aligns vertically with the navigation bar and below the 3 window control buttons (close, minimize, full screen), whereas on other macOS apps using SplitViewController such as Apple Notes app, the displayMode button aligns vertically and just to the right of the the 3 window control buttons (close, minimize, full screen). I downloaded the Apple Example app called Menus that is supposed to be a prime exam
1
0
175
May ’25
Reply to NSLayoutManager Bug -- layout manager re-laying out overlapping text into the same container.
Hi Ziqiao, thank you for the suggestion. I tested using exclusionPaths instead and interestingly, the bug still occurs! I can send you the version of the project that uses exclusionPaths instead of different container sizes if you'd like to compile/run and see. For convenience, here is the changed code in question with exclusionPaths: setupLayout() changes to: func setupLayout() { var index = 0 for textViewData in PreviewTestData.textViewDataArray { self.ensureContainer(with: textViewData.frame.size, exclusionPath: textViewData.exclusionPath, at: index) index += 1 } } ensureContainer(...) changes to: @discardableResult private func ensureContainer(with size: CGSize, exclusionPath: NSBezierPath?, at index: Int) -> NSTextContainer { precondition(index >= 0 && index <= layoutManager.textContainers.count) if index == layoutManager.textContainers.count { let container = NSTextContainer(size: size) container.widthTracksTextView = false container.heightTracksTextView = false container.lineFragmentPa
Topic: UI Frameworks SubTopic: AppKit Tags:
May ’25
Reply to NSLayoutManager Bug -- layout manager re-laying out overlapping text into the same container.
Hi Ziqiao, thank you for looking at the project and for the feedback. My word processing app requires containers of differing width in order to fulfill its core functions. I know Apple's own Pages app supports documents that flow continuously with varying numbers of columns with widths that the user can set arbitrarily. And Apple's own documentation of NSLayoutManager / NSTextContainer mentions multi-column text (https://developer.apple.com/library/archive/documentation/TextFonts/Conceptual/CocoaTextArchitecture/TextSystemArchitecture/ArchitectureOverview.html#//apple_ref/doc/uid/TP40009459-CH7-SW4). Text Kit 2 doesn't yet support more than one text container, so that's not an option for me yet and I can't migrate to Text Kit 2 until they support container / page breaks. I would love for this issue to be elevated. This is an actual and serious bug in Text Kit!
Topic: UI Frameworks SubTopic: AppKit Tags:
May ’25
Reply to Generate Provisioning Profile that includes MusicKit Entitlements
MusicKit isn’t gated by an entitlement. That’s why, when you enable it on an App ID, you enable it in the App Services column rather than the Capabilities column. Enabling it there grants that App ID access to that service without needing your app to be signed with any entitlement. Share and Enjoy — Quinn “The Eskimo!” @ Developer Technical Support @ Apple let myEmail = eskimo + 1 + @ + apple.com
May ’25
NSLayoutManager laying out overlapping text into the same NSTextContainer even when there are more containers available.
In summation: I have a nasty bug where my layout manager is laying out text visually overlapping on top of other text, i.e., into a container that it should have left in the rear view as it continues to lay out into ensuing containers. Details below... I'm coding a word processing app with some custom pagination that involves multiple pages, within which there can be multiple NSTextView/NSTextContainer pairs that represent single column or dual column runs of text. I generate pagination data by using a measuring NSLayoutManager. This process ensures that no containers overlap, and that they are sized correctly for their associated ranges of text (i.e., non-overlapping, continuous ranges from a single NSTextStorage). I determine frame sizes by a series of checks, most importantly, by finding the last glyph in a column. Prior to the code below, remainingColumnRange represents the remaining range of my textStorage that is of a consistent column type (i.e., single, left column
4
0
1.1k
May ’25
Reply to NSLayoutManager Bug -- layout manager re-laying out overlapping text into the same container.
I'm sharing the code that parses my preview data here. I'm using an NSViewRepresentable and the call to - paginator.exhibitTheBug() - is within makeNSView(...). But note that this bug occurs whether I call paginator.exhibitTheBug() there, or in updateNSView(...), or from textStorage(:didProcessEditing:...) via a DispatchQueue.main.async closure. I.e., I thought at first that it was a threading/runtime issue, but it's not. class Paginator { let textStorage: NSTextStorage let layoutManager: NSLayoutManager init(textStorage: NSTextStorage, layoutManager: NSLayoutManager) { self.textStorage = textStorage self.layoutManager = layoutManager self.setupLayout() } /// Runs the functions that will exhibit the bug. func exhibitTheBug() { // Get char range to measure in container. let characterRangeToTest = self.getCharacterRangeOfFirstColumnType() // The bug occurs in this call: testMeasurement(for: characterRangeToTest) } /// Returns the effective range of the text storage over which the column type (`NSAttrib
Topic: UI Frameworks SubTopic: AppKit Tags:
May ’25
Apple Search Ads Reports API - Invalid Request JSON
I'm trying to call https://api.searchads.apple.com/api/v5/reports/campaigns but getting the following response: {data:null,pagination:null,error:{errors:[{messageCode:INVALID_JSON_REQUEST,message:This is an invalid json. The request can not be parsed,field:Line#:1 Column#:13}]}} I've used all suggested options for request parameters from documentation, e.g. { startTime: 2024-04-08, endTime: 2024-04-09, selector: { orderBy: [ { field: countryOrRegion, sortOrder: ASCENDING } ], conditions: [ { field: countriesOrRegions, operator: CONTAINS_ANY, values: [ US, GB ] }, { field: countryOrRegion, operator: IN, values: [ US ] } ], pagination: { offset: 0, limit: 1000 } }, groupBy: [ countryOrRegion ], timeZone: UTC, returnRecordsWithNoMetrics: true, returnRowTotals: true, returnGrandTotals: true } What's the proper way to call this API?
1
0
619
Oct ’24
NavigationStack within NavigationSplitView's detail column clears the path when disappearing
I'd like to persist the path on a sidebar selection, so when user comes back to the sidebar selection, they land where they were before. Unexpectedly, the path gets cleared when sidebarSelection is changed from the NavigationStack that uses the path to something else. Is this an intended behavior? How to workaround it? Using TabView is one way, but TabView has its own problems, so I'm wondering if there's a solution within NavigationSplitView first. Here is a minimal reproduce of the issue: struct Home2: View { private enum SidebarSelection: CaseIterable, Identifiable { var id: Self { self } case files, tags } @State private var sidebarSelection: SidebarSelection? = .files @State private var path: [Int] = [] var body: some View { NavigationSplitView { List(SidebarSelection.allCases, selection: $sidebarSelection) { selection in switch selection { case .files: Label(Files, image: custom.square.stack) case .tags: Label(Tags, systemImage: grid) } } } detail: { switch sidebarSelection { case .files: NavigationStac
4
0
161
May ’25
LazyVGrid (embedded in a List) does not resize automatically when content increases and layout changes
I have a List in a sidebar style which contains a LazyVGrid and a Section with a simple list contents. Every thing works well except when content increases and layout changes (from two columns to one column) for the LazyVGrid with editMode changing to .active ... LazyVGrid does not expand/resize when the content increases (the increased content gets clipped)...but does when user expands/folds on the section below :(. However LazyVGrid resizes to show the entire content when the content shrinks with editMode reverting to .inactive Note: If I replace the List with a ScrollView...lazyVGrid resizes perfectly when content increases in editMode = .active....but then I would lose all the Sidebar and List characteristics for the Section below :( Also, looks like .onMove is not supported in LazyVGrids Any pointers to solve the LazyVGrid (embedded in a List) not resizing or expanding when content increases ... will be deeply appreciated. var body: some View { List { LazyVGrid(columns: editMod
1
0
1.7k
May ’25
Collection view with self-sizing cells with SwiftUI content
I am trying to make a collection view with self-sizing cells that adapt to SwiftUI content. My test platform is macOS, but it should work on iOS all the same. I chose macOS because on macOS, you can resize the window and cause more interesting scenarios with that. My layout intent is fairly simple: a one-column collection view with cells with SwiftUI content, where the collection view cells should adapt to the height of their SwiftUI content. I got it working almost correctly. The one scenario that I don’t have working is window resizing. When the window resizes, the layout and cells should adapt to the content and change their heights. I feel that I am missing something fairly basic. How do I change this project so that the layout works correctly when I change the macOS window width? Example project and video of the behavior: https://gist.github.com/jaanus/66e3d863941ba645c88220b8a22970e1
Topic: UI Frameworks SubTopic: AppKit
1
0
380
Apr ’25
Reply to SwiftData crash on fetch
I have some potential progress, but due to the nature of this crash, I don't know if this is correct or not. After inspecting the sqlite-files that represents the backingdata, I discovered that a property backed by an integer was set to null after migration even the original value was 3. Upon inspection, I realized this was the very first property I ever migrated, so it was still annotated with @Attribute(orginalName: propertyName), even tho the migration which crashed for me was the 9th migration step overall for the app. Thus, with the Schema I was migrating from being: struct SchemaV7 { @Model class Item { @Attribute(originalName: propertyName) var newPropertyName: Int } } And then removing it in the destination Schema: struct SchemaV8 { @Model class Item { var newPropertyName: Int } } made me able to complete the migration without crashing. Wether this was the solution or not, I have no idea, but it could explain some of the crashes I've seen earlier... The property which was crashing the app have never b
Replies
Boosts
Views
Activity
Jun ’25
Filtered dataFrame displays original dataFrame values
I'm importing a csv file of 299 rows and creating a subset by filtering on one column value (24 rows). I want to Chart just the filtered values. However, when I print one column I get values from the original dataFrame. Any suggestions? Thanks, David The code: import SwiftUI import Charts import TabularData struct DataPoint: Identifiable { var id = UUID() // This makes it conform to Identifiable var date: Date var value: Double } struct ContentView: View { @State private var dataPoints: [DataPoint] = [] var body: some View { Text(Hello) Chart { ForEach(dataPoints) { dataPoint in PointMark( x: .value(Date, dataPoint.date), y: .value(Value, dataPoint.value) ) } } .frame(height: 300) .padding() .onAppear(perform: loadData) } func loadData() { print(In Loading Data) // Load the CSV file if let url = Bundle.main.url(forResource: observations, withExtension: csv) { do { let options = CSVReadingOptions(hasHeaderRow: true, delimiter: ,) var data0 = try DataFrame(contentsOfCSVFile: url, options: opti
Replies
2
Boosts
0
Views
134
Activity
May ’25
What is the first reliable position of the apple vision pro device?
In several visionOS apps, we readjust our scenes to the user's eye level (their heads). But, we have encountered issues whereby the WorldTrackingProvider returns bad/incorrect positions for the first x number of frames. See below code which you can copy paste in any Immersive Space. Relaunch the space and observe the numberOfBadWorldInfos value is inconsistent. a. what is the most reliable way to get the devices's position? b. is this indeed a bug? c. are we using worldInfo improperly? d. as a workaround, in our apps we set to 10 the number of frames to let pass before using worldInfo, should we set our threshold differently? import ARKit import Combine import OSLog import SwiftUI import RealityKit import RealityKitContent let SUBSYSTEM = Bundle.main.bundleIdentifier! struct ImmersiveView: View { let logger = Logger(subsystem: SUBSYSTEM, category: ImmersiveView) let session = ARKitSession() let worldInfo = WorldTrackingProvider() @State var sceneUpdateSubscription: EventSubscription? = nil @State var deviceTr
Replies
3
Boosts
0
Views
157
Activity
May ’25
Reply to Filtered dataFrame displays original dataFrame values
Filtered columns behave like Swift ArraySlices. In particular they maintain the original indices, see ArraySlice, Slices Maintain Indices. You need to replace for i in 0 ... data.rows.count with for i in data.rows.indices. The other option is to convert the slice back to a regular DataFrame: let data = DataFrame(data0.filter { ... })
Topic: App & System Services SubTopic: General Tags:
Replies
Boosts
Views
Activity
May ’25
CollectionViewCell switch back to single column once UImage is assigned
Hi I am building a simple multi column CollectionView here and trying to add 3 cell in a row. Well, in short the column and rows looks all fine if I comment the below code. which is no image and text assigned to cells. let framework = list[indexPath.item] cell.configure(framework) However, once uncommented, only a single cell is displayed per row and the image doesn't seem to be resizing automatically. Can you please advise. Below is the ViewController. import UIKit class FrameworkListViewController: UIViewController { @IBOutlet weak var collectionView: UICollectionView! let list: [AppleFramework] = AppleFramework.list override func viewDidLoad() { super.viewDidLoad() collectionView.dataSource = self collectionView.delegate = self } } extension FrameworkListViewController: UICollectionViewDataSource { func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return list.count } func collectionView(_ collectionView: UICollectionView, cellForItemA
Topic: UI Frameworks SubTopic: UIKit
Replies
1
Boosts
0
Views
55
Activity
May ’25
Mac Catalyst SplitViewController, UITitlebar bugs?
Bringing my iPad app to Mac Catalyst as iPad idiom. Primary interface is a UISplitViewController. Two things I think are bugs unless someone replies with a fix. SplitViewController is setup in two column with left column as sidebar: split.setViewController(primary, for: .primary) split.setViewController(secondary, for: .secondary) split.preferredDisplayMode = .oneBesideSecondary split.preferredSplitBehavior = .tile split.presentsWithGesture = true #if targetEnvironment(macCatalyst) split.primaryBackgroundStyle = .sidebar split.displayModeButtonVisibility = .never #endif The displayMode button aligns vertically with the navigation bar and below the 3 window control buttons (close, minimize, full screen), whereas on other macOS apps using SplitViewController such as Apple Notes app, the displayMode button aligns vertically and just to the right of the the 3 window control buttons (close, minimize, full screen). I downloaded the Apple Example app called Menus that is supposed to be a prime exam
Replies
1
Boosts
0
Views
175
Activity
May ’25
Reply to NSLayoutManager Bug -- layout manager re-laying out overlapping text into the same container.
Hi Ziqiao, thank you for the suggestion. I tested using exclusionPaths instead and interestingly, the bug still occurs! I can send you the version of the project that uses exclusionPaths instead of different container sizes if you'd like to compile/run and see. For convenience, here is the changed code in question with exclusionPaths: setupLayout() changes to: func setupLayout() { var index = 0 for textViewData in PreviewTestData.textViewDataArray { self.ensureContainer(with: textViewData.frame.size, exclusionPath: textViewData.exclusionPath, at: index) index += 1 } } ensureContainer(...) changes to: @discardableResult private func ensureContainer(with size: CGSize, exclusionPath: NSBezierPath?, at index: Int) -> NSTextContainer { precondition(index >= 0 && index <= layoutManager.textContainers.count) if index == layoutManager.textContainers.count { let container = NSTextContainer(size: size) container.widthTracksTextView = false container.heightTracksTextView = false container.lineFragmentPa
Topic: UI Frameworks SubTopic: AppKit Tags:
Replies
Boosts
Views
Activity
May ’25
Reply to NSLayoutManager Bug -- layout manager re-laying out overlapping text into the same container.
Hi Ziqiao, thank you for looking at the project and for the feedback. My word processing app requires containers of differing width in order to fulfill its core functions. I know Apple's own Pages app supports documents that flow continuously with varying numbers of columns with widths that the user can set arbitrarily. And Apple's own documentation of NSLayoutManager / NSTextContainer mentions multi-column text (https://developer.apple.com/library/archive/documentation/TextFonts/Conceptual/CocoaTextArchitecture/TextSystemArchitecture/ArchitectureOverview.html#//apple_ref/doc/uid/TP40009459-CH7-SW4). Text Kit 2 doesn't yet support more than one text container, so that's not an option for me yet and I can't migrate to Text Kit 2 until they support container / page breaks. I would love for this issue to be elevated. This is an actual and serious bug in Text Kit!
Topic: UI Frameworks SubTopic: AppKit Tags:
Replies
Boosts
Views
Activity
May ’25
Reply to Generate Provisioning Profile that includes MusicKit Entitlements
MusicKit isn’t gated by an entitlement. That’s why, when you enable it on an App ID, you enable it in the App Services column rather than the Capabilities column. Enabling it there grants that App ID access to that service without needing your app to be signed with any entitlement. Share and Enjoy — Quinn “The Eskimo!” @ Developer Technical Support @ Apple let myEmail = eskimo + 1 + @ + apple.com
Replies
Boosts
Views
Activity
May ’25
NSLayoutManager laying out overlapping text into the same NSTextContainer even when there are more containers available.
In summation: I have a nasty bug where my layout manager is laying out text visually overlapping on top of other text, i.e., into a container that it should have left in the rear view as it continues to lay out into ensuing containers. Details below... I'm coding a word processing app with some custom pagination that involves multiple pages, within which there can be multiple NSTextView/NSTextContainer pairs that represent single column or dual column runs of text. I generate pagination data by using a measuring NSLayoutManager. This process ensures that no containers overlap, and that they are sized correctly for their associated ranges of text (i.e., non-overlapping, continuous ranges from a single NSTextStorage). I determine frame sizes by a series of checks, most importantly, by finding the last glyph in a column. Prior to the code below, remainingColumnRange represents the remaining range of my textStorage that is of a consistent column type (i.e., single, left column
Replies
4
Boosts
0
Views
1.1k
Activity
May ’25
Reply to NSLayoutManager Bug -- layout manager re-laying out overlapping text into the same container.
I'm sharing the code that parses my preview data here. I'm using an NSViewRepresentable and the call to - paginator.exhibitTheBug() - is within makeNSView(...). But note that this bug occurs whether I call paginator.exhibitTheBug() there, or in updateNSView(...), or from textStorage(:didProcessEditing:...) via a DispatchQueue.main.async closure. I.e., I thought at first that it was a threading/runtime issue, but it's not. class Paginator { let textStorage: NSTextStorage let layoutManager: NSLayoutManager init(textStorage: NSTextStorage, layoutManager: NSLayoutManager) { self.textStorage = textStorage self.layoutManager = layoutManager self.setupLayout() } /// Runs the functions that will exhibit the bug. func exhibitTheBug() { // Get char range to measure in container. let characterRangeToTest = self.getCharacterRangeOfFirstColumnType() // The bug occurs in this call: testMeasurement(for: characterRangeToTest) } /// Returns the effective range of the text storage over which the column type (`NSAttrib
Topic: UI Frameworks SubTopic: AppKit Tags:
Replies
Boosts
Views
Activity
May ’25
Apple Search Ads Reports API - Invalid Request JSON
I'm trying to call https://api.searchads.apple.com/api/v5/reports/campaigns but getting the following response: {data:null,pagination:null,error:{errors:[{messageCode:INVALID_JSON_REQUEST,message:This is an invalid json. The request can not be parsed,field:Line#:1 Column#:13}]}} I've used all suggested options for request parameters from documentation, e.g. { startTime: 2024-04-08, endTime: 2024-04-09, selector: { orderBy: [ { field: countryOrRegion, sortOrder: ASCENDING } ], conditions: [ { field: countriesOrRegions, operator: CONTAINS_ANY, values: [ US, GB ] }, { field: countryOrRegion, operator: IN, values: [ US ] } ], pagination: { offset: 0, limit: 1000 } }, groupBy: [ countryOrRegion ], timeZone: UTC, returnRecordsWithNoMetrics: true, returnRowTotals: true, returnGrandTotals: true } What's the proper way to call this API?
Replies
1
Boosts
0
Views
619
Activity
Oct ’24
NavigationStack within NavigationSplitView's detail column clears the path when disappearing
I'd like to persist the path on a sidebar selection, so when user comes back to the sidebar selection, they land where they were before. Unexpectedly, the path gets cleared when sidebarSelection is changed from the NavigationStack that uses the path to something else. Is this an intended behavior? How to workaround it? Using TabView is one way, but TabView has its own problems, so I'm wondering if there's a solution within NavigationSplitView first. Here is a minimal reproduce of the issue: struct Home2: View { private enum SidebarSelection: CaseIterable, Identifiable { var id: Self { self } case files, tags } @State private var sidebarSelection: SidebarSelection? = .files @State private var path: [Int] = [] var body: some View { NavigationSplitView { List(SidebarSelection.allCases, selection: $sidebarSelection) { selection in switch selection { case .files: Label(Files, image: custom.square.stack) case .tags: Label(Tags, systemImage: grid) } } } detail: { switch sidebarSelection { case .files: NavigationStac
Replies
4
Boosts
0
Views
161
Activity
May ’25
LazyVGrid (embedded in a List) does not resize automatically when content increases and layout changes
I have a List in a sidebar style which contains a LazyVGrid and a Section with a simple list contents. Every thing works well except when content increases and layout changes (from two columns to one column) for the LazyVGrid with editMode changing to .active ... LazyVGrid does not expand/resize when the content increases (the increased content gets clipped)...but does when user expands/folds on the section below :(. However LazyVGrid resizes to show the entire content when the content shrinks with editMode reverting to .inactive Note: If I replace the List with a ScrollView...lazyVGrid resizes perfectly when content increases in editMode = .active....but then I would lose all the Sidebar and List characteristics for the Section below :( Also, looks like .onMove is not supported in LazyVGrids Any pointers to solve the LazyVGrid (embedded in a List) not resizing or expanding when content increases ... will be deeply appreciated. var body: some View { List { LazyVGrid(columns: editMod
Replies
1
Boosts
0
Views
1.7k
Activity
May ’25
Collection view with self-sizing cells with SwiftUI content
I am trying to make a collection view with self-sizing cells that adapt to SwiftUI content. My test platform is macOS, but it should work on iOS all the same. I chose macOS because on macOS, you can resize the window and cause more interesting scenarios with that. My layout intent is fairly simple: a one-column collection view with cells with SwiftUI content, where the collection view cells should adapt to the height of their SwiftUI content. I got it working almost correctly. The one scenario that I don’t have working is window resizing. When the window resizes, the layout and cells should adapt to the content and change their heights. I feel that I am missing something fairly basic. How do I change this project so that the layout works correctly when I change the macOS window width? Example project and video of the behavior: https://gist.github.com/jaanus/66e3d863941ba645c88220b8a22970e1
Topic: UI Frameworks SubTopic: AppKit
Replies
1
Boosts
0
Views
380
Activity
Apr ’25