Post not yet marked as solved
When I run my Watch app in the Xcode 12.2, MacOS 11.0.1 Simulator (any size watch) for an update the text in my three WKInterfacePickers are truncated with ellipsis, e.g. MONTHS Jul, A..., Sep DAYS 14,15,16, YEARS 20..., 20..., 20...
I keep the Width "Relative to Container" specifying a percentage for each picker adding up to 1. The Height of the Group container is constant.
With the same settings on my (only) hardware 1st Gen Watch watchOS 4.3.2, the titles/text are fine and complete. The ellipses are less frequent with the 44mm face though.
It doesn't seem the titles/text adapt to their containers. Any ideas?
Post not yet marked as solved
I'm an Objective C relic (don't do Swift) with an iPhone app with a Watch app that I haven't had to touch for 2 years (because it just works) and has worked with WatchOSs 1-6 but now is broken because I used one Force Touch menu item in three paged views each with three pickers (just a spinner on opening).
Basically, the app is a calculator using dates and the menu item simply lets the Watch user set the date to Today with one tap instead of fiddling with three pickers.
I've watched the 2020 WWDC video "What's New in watchOS Design". It looks like the best fit would be a toolbar button on top but that is only available in OS 7. Many users can't have OS 7 on a 1st Gen Watch. I thought I could create a home-brew replica but found there is not a scroll view in watchOS before 7 to even place a button. The next best thing would be something like a More button but I can't figure out how to add/overlay a button (leading to a modal) in a lower corner (no constraints or auto layout in watchOS) without running into trouble with curved screens and different sized faces.
So, I would be interested in any suggestions and help on how to resolve this for all watchOSs, or I guess I'll just remove this helpful functionality (which many probably do not even know is there because it's hidden).
Post not yet marked as solved
Is it still possible to create a watch app for 1st Generation Apple Watch running 4.3.2 and compatible with 7? How?
Post not yet marked as solved
I have had two user contacts in the last week where they easily install my Universal app on another iPhone, restore their previous IAP upgrade purchase (added functionality - interconnectivity via BTLE between iOS devices), BUT when they install to a second device, exclusively an iPad (both iPad Airs - so far), and try to restore the IAP purchase, my app is not able to connect to the App Store for the IAP upgrade. My app displays a message when there is no Internet access or no connection to the App Store with the same error message.My app has not been updated since 2017 with a dozen or so IAP upgrades as one of its main features. I have not been able to reproduce the error on my iPhone X and iPad Pro (on iOS 12.4.1 as is with these users). And no Crashes in the last two weeks with Xcode Organizer. In fact, the connection and upgrade on my devices and network is instantaneous. I have had users not be able to connect to the App Store a couple times a year that is solved by just trying again later.In both cases, with the latest iOS, they have 1) demonstrable Internet connections, 2) tried later several times over days, 3) tried deleting the app to their iPads and reinstalling it, 4) powered down and powered up the iPad.I fear these two incidents may be the tip of the iceberg for some bizarre reason, but as I cannot reproduce this, I'm clueless.Does anyone know what could be causing this, or how I can diagnose these errors?
Post not yet marked as solved
I have several initially hidden UIPickers in a vertical stack view, where the user chooses one via a segmented controller or a table view elsewhere, and it is unhidden (code below). Visually it works fine - the correct picker appears. But I want to add a subview (a units label) to several of the pickerviews. When I immediately look at the frame of newView in the code below, the frame origin has values as well as the width, but the height is always zero as if the view is still totally collapsed in the stack view. What I need is the height of the picker view to calculate where to put the label subview before it appears.But paradoxically (to me), the next time around when another picker view is chosen (without the segmented controller around so the picker will be bigger because of AutoLayout constraints), the newView frame for the previous picker appears WITH A HEIGHT and does not reflect the size of the just unhidden picker.Does anyone know how to find the height of the expanded unhidden picker view before or immediately after it appears?- (void)showPickerInStackView:(NSUInteger)newPickerIndex {
// hide them all first
for (int i = 0; i < self.pickerStackView.arrangedSubviews.count; i++) {
self.pickerStackView.arrangedSubviews[i].hidden = YES;
}
UIView *newView = self.pickerStackView.arrangedSubviews[newPickerIndex];
newView.hidden = NO;
}
Post not yet marked as solved
I have UIPickerView within a vertical StackView, and with various settings for distribution, sometimes the picker looks instrinsic size of 216 high and other times it is ~360 points. I want to overlay a label view (for units) and I want to to center vertically the label. I tried trying to measure the picker height in viewDidLayoutSubviews but the value for the picker's frame isn't close to what I see.So, the question is, at what point and in what part of the view cycle can I find out the visible height of a view, e.g. picker?
Post not yet marked as solved
Just curious about an app from a 3D camera maker that is definitely non-native (and a shortcut to compatibility with Windows apps???) and reminds me of something in the past like X-Windows with a crude file browser that displays long pathnames from the root. The entire app is within one "Mac" window and the app's actual menu is inside that window (link to screenshot below)What do you think they are using?https://www.icloud.com/iclouddrive/0hrj-_4J0eIeJ5FqtGk8FAI5A#vuzeapp.png
Post not yet marked as solved
Just updated to 10.0, opened a 9.4 project and in IB, no graphics (image assets) or colors appear just blue outlines of all views on a white background. Also shows "An internal error occurred. Editing functionality may be limited."What next?
Post not yet marked as solved
For an iOS 8 iPhone/Portrait-only app with an app extension (that's supposed to ignore the base app's restrictions and become Universal), I'm having trouble dealing with the extension use in iPads in particular. What appears is a form sheet within a full-screen (grayed out) modal presentation with my view controller content within whether Portrait or Landscape. Where exactly the dimensions of the form sheet are specified is a mystery to me (not in IB) as I use AutoLayout and all sides are supposed to hug all borders, but instead I get something the size of an iPhone for the form sheet in the middle of the screen.I've "hacked" my way to specify the size of the iPhone-sized view in loadView of the controller, and determine that it is within an iPad, and change the view controller's preferredContentSize to an arbitrary value.So, what is the correct/efficient way to identify the content size in the system modal presentation view controller and then set the size of the content in the modal presentation as it appears AutoLayout in IBseems to have no effect?
Post not yet marked as solved
I need to update a 3 year old iPhone-only, portrait only (NOT universal) camera/photo app that worked with iOS 8 that contains a Share extension that now (with 10.0???) crashes at times (but works many other times), and I'm trying to debug the issues and update to iOS 9.0.The first issue I found and fixed was the lack of Privacy strings for access to the camera and photo library.But I also found that the extension does not work with Photos on an iPad with layout issues (in the Simulator so far). As the docs say, extension targets must be made for iPhone/iPad and my build setting for the target extension are set to 1,2, and I use Auto Layout.The storyboard, the Extension scene, a View Controller Scene, all view controllers, views and subviews all are set for Auto Layout as well as Safe Area Layout Guides, but the only devices shown in IB are iPhones with no iPads available, when selecting other devices no change is seen in size, and the iPhone is constrained to portrait mode. I've tried setting the main app as Universal, allowing every orientation, building, and still no iPad icons in IB to test the UI for the extension (and Landscape doesn't work either). I built a blank iPhone only app with an app extension, turned off traits and the iPads show up but the orientation would not switch to Landscape (like my app).Is there a way to get IB to show and allow both iPads/iPhones, particularly iPads, and change orientation during development for app extensions (because they're supposed to adapt to all devices and orientations)?
My app was originally multi-lingual but I want it limited to English. The new app uploaded fine, validated, etc. but when I Submit for Review there was "one or more errors" and the only thing on the page was a white on red circle on the English (U.S.) in the upper right hand corner of the page. There is no explanation of what that means or what I need to do and just languages I do not want to localize.I still have "junk" in my code from the preiviously accepted version which includes InfoPlist.strings group that contain 5 languages including English, as well as Localizable.strings group that include files for Base and English.Under Project -> Info there still remains 5 Localizations with Use Base internationalization checked.So, I would prefer not to experiment and keep creating new builds, archiving, uploading, choosing build, etc. over and over, and then at the last moment only to find the error mark next to English again.Does anyone know what I should delete, what needs to be left (e.g. Base localizable strings vs. English strings which are identical), or wil removing the localizations in Project Info will be enough to satisfy the unknown need of the submission?
Have a single view controller that operates for both an iPhone storyboard and an iPad storyboard. The view controller scenes for each include a UIView subclass with writeable properties necessary to create a special view.I can successfully set the properties for the subclass in the view controllers viewDidLoad for the iPhone but the properties are not successfully set for the iPad and the subclass obviously does not perform as designed. Included below are abstracted console listings (for simulators) that show the iPhone the subclass is inited with coder slightly before the viewDidLoad for both devices, so I would think I was safe. When I test the subclass without the rest of the app, it works for both devices in the simulators.So, again (because I think I used to know this), when can you reliably set properties for storyboard objects within a scene?iPhone 8 (setting subclass properties works in viewDidLoad)
2017-11-07 14:05:53.191484 initWithCoder: (UIView subclass)
2017-11-07 14:05:53.191915 setUpView (UIView subclass)
2017-11-07 14:05:53.221606 [MC] Lazy loading NSBundle MobileCoreServices.framework
2017-11-07 14:05:53.222767 [MC] Loaded MobileCoreServices.framework
2017-11-07 14:05:53.304210 viewDidLoad (Main View Controller)
2017-11-07 14:05:54.104553 viewWillAppear: (Main View Controller)
2017-11-07 14:05:54.124889 viewWillLayoutSubviews (Main View Controller)
2017-11-07 14:05:54.128485 layoutSubviews (UIView subclass)
2017-11-07 14:05:54.128630 layoutSubviews (UIView subclass)
2017-11-07 14:05:54.129017 viewWillLayoutSubviews (Main View Controller)
2017-11-07 14:05:54.144486 drawRect: (UIView subclass)
iPad Air 2 (setting subclass properties does NOT work in viewDidLoad)
2017-11-07 14:09:14.184502 [MC] Lazy loading NSBundle MobileCoreServices.framework
2017-11-07 14:09:14.185708 [MC] Loaded MobileCoreServices.framework
2017-11-07 14:09:14.218208 initWithCoder: (UIView subclass)
2017-11-07 14:09:14.218519 setUpView (UIView subclass)
2017-11-07 14:09:14.229662 viewDidLoad (Main View Controller)
2017-11-07 14:09:14.410150 viewWillAppear: (Main View Controller)
2017-11-07 14:09:14.419288 viewWillLayoutSubviews (Main View Controller)
2017-11-07 14:09:14.423142 layoutSubviews (UIView subclass)
2017-11-07 14:09:14.423248 layoutSubviews (UIView subclass)
2017-11-07 14:09:14.423658 viewWillLayoutSubviews (Main View Controller)
2017-11-07 14:09:14.441233 drawRect: (UIView subclass)
Post not yet marked as solved
Updating an old app and for all kinds of reasons NOT using AutoLayout. My code works fine without any "magic" numbers about screen size, checking for individual sizes or devices, etc. and it works fine for everything EXCEPT iPhone X. So, I need to confine two sides of my main view to a safe areas (landscape - notch side and bottom) and the problem is that one of my custom views is created during the app's view life cycle, and the safeAreaInsets that I need to use are not around when I need them to create the view.I've seen code around where depending on whether iOS 11 is available, constraints can be added programmatically to limit the view to the safe area and if not iOS 11 just stick to the sides (or do nothing).Two questions. 1) can working constraints be added programmatically to a NON-AutoLayout environment, in other words, are the safe area guides even there and will constraints work when not using AutoLayout, and 2) is there any other way to *simply* deal with iPhone X (without AutoLayout in IB and the safe area guides)?
Post not yet marked as solved
I created a rounded rectangular image (actually several @2x, @3x) with say a corner radius of 20 points @1x. This image has an inside shadow on the upper top and left with a gradient going from light color on top to dark color at the bottom. I want the image to stretch both horizontally and vertically.In the attributes inspector, I sliced it for Horizontal and Vertical and automatically it figured out the caps at 20 points left, right, top, and bottom with width of 1. I set the Center to Tiles (and also Stretches first) with the same result that the corners are all fine but there is no gradient with just the light color almost to the bottom (where the 20 point caps are) and from that point down, there is just the dark color horizontal area. Not at all what I expected as the center area did not capture any of the existing gradient from top to bottom.I've tried every permutation I can think of, Tiles, Stretches, widths, cap sizes, all without success. So, can gradient images be sliced?
Post not yet marked as solved
For a lot of reasons on a 2014 landscape-only app needing an update, I cannot use a storyboard file, and will have to use an asset catalog for my launch images (or not?). However, when I choose Launch image Inspector for the iPhone, iOS 8.0 or later and choose Landscape, I expect to see a slot appear for iPhone Landscape, iOS 8,9, Retina HD 4.7" but none appears. I *think* I need this for an iPhone 8 and I created a png named Default-Landscape-667h@2x.png, and there is NO slot.I've tried putting it in the Portrait slot, where there is a Retina HD 4.7" slot, and of course I get the compiler warning:Ambiguous Content: LaunchImage.launchimage/Default-Landscape-667h@2x.png is 1334x750 but should be 750x1334.Which, yeah, I know, so where is the Landscape slot for Retina HD 4.7" ?