🔍 Context
The built-in screenshot editor in iOS and iPadOS (Markup tool) only allows users to crop images using rectangular frames. While this is sufficient for basic editing, it lacks flexibility for those who wish to tailor the screenshot to the aesthetics of iOS itself — which relies heavily on rounded shapes and smooth UI elements.
⸻
🚫 Current Limitation
• After taking a screenshot and opening it in Markup, users can only crop in rectangular or square formats.
• No option is available to apply rounded corners to the crop.
• As a result, many users are forced to use third-party apps just to achieve a basic rounded-edge crop, which feels unnecessary for such a common need.
⸻
✅ Proposed Solution
Add a rounded corner cropping feature to the screenshot editor.
This could be implemented as:
• A toggle to activate “Rounded Crop”.
• A radius slider (or predefined corner radius presets).
• Optional: an export option to save the result with transparent background, useful for designers and mockups.
⸻
🎯 Why it matters
• Aligns better with the iOS design language (cards, notifications, widgets, etc.).
• Saves time for users who currently have to rely on external editing apps.
• Greatly improves the presentation of screenshots for social media, UI/UX mockups, blogs, and professional use cases.
• Useful across many professions: developers, designers, content creators, educators, marketers.
⸻
📷 Visual Example
Here’s a mockup to illustrate the proposed feature:
(Add your image here)
⸻
💡 Bonus Suggestion
Allow exporting with a transparent background when cropping screenshots — especially useful for rounded crops or mockups placed on colored backgrounds.
General
RSS for tagExplore the art and science of app design. Discuss user interface (UI) design principles, user experience (UX) best practices, and share design resources and inspiration.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
1, I add an Matter extension named TRMatterExtension, using the Template in Xcode.
2, check the InfoPlist with the TRMatterExtension module, I see the NSExtension key with two key which are like this:
3,The RequestHandler.swift file is like this:
import os
import MatterSupport
let logger = Logger(subsystem: "com.airdroitech.commissionMtr2", category: "MatterExtension")
// The extension is launched in response to MatterAddDeviceRequest.perform() and this class is the entry point
// for the extension operations.
class RequestHandler: MatterAddDeviceExtensionRequestHandler {
override init() {
logger.log("QAWI3 - init")
super.init()
}
override func validateDeviceCredential(_ deviceCredential: MatterAddDeviceExtensionRequestHandler.DeviceCredential) async throws {
// Use this function to perform additional attestation checks if that is useful for your ecosystem.
logger.log("QAWI3 - validateDeviceCredential")
}
override func selectWiFiNetwork(from wifiScanResults: [MatterAddDeviceExtensionRequestHandler.WiFiScanResult]) async throws -> MatterAddDeviceExtensionRequestHandler.WiFiNetworkAssociation {
// Use this function to select a Wi-Fi network for the device if your ecosystem has special requirements.
// Or, return `.defaultSystemNetwork` to use the iOS device's current network.
logger.log("QAWI3 - Returning default system network")
return .defaultSystemNetwork
}
override func selectThreadNetwork(from threadScanResults: [MatterAddDeviceExtensionRequestHandler.ThreadScanResult]) async throws -> MatterAddDeviceExtensionRequestHandler.ThreadNetworkAssociation {
// Use this function to select a Thread network for the device if your ecosystem has special requirements.
// Or, return `.defaultSystemNetwork` to use the default Thread network.
return .defaultSystemNetwork
}
override func commissionDevice(in home: MatterAddDeviceRequest.Home?, onboardingPayload: String, commissioningID: UUID) async throws {
// Use this function to commission the device with your Matter stack.
logger.log("QAWI3 - Starting commissioning flow")
}
override func rooms(in home: MatterAddDeviceRequest.Home?) async -> [MatterAddDeviceRequest.Room] {
// Use this function to return the rooms your ecosystem manages.
// If your ecosystem manages multiple homes, ensure you are returning rooms that belong to the provided home.
return [.init(displayName: "Living Room")]
}
override func configureDevice(named name: String, in room: MatterAddDeviceRequest.Room?) async {
// Use this function to configure the (now) commissioned device with the given name and room.
}
}
4, I add Privacy - Local Network Usage Description and Bonjour services [
_matter._tcp
_matterc._udp
_matterd._udp
] to the main target's InfoPlist.
5, click a button to call MatterAddDeviceRequest.perform(), the code is as the following:
let homes = [MatterAddDeviceRequest.Home(displayName: "TRHome")]
let topology = MatterAddDeviceRequest.Topology(ecosystemName: "TR", homes: homes)
let request = MatterAddDeviceRequest(topology: topology)
do {
try await request.perform()
print("Successfully set up device!")
} catch {
print("Failed to set up device with error: (error)")
}
6, Result:
Most times, Matter devices can be added to the KeyChain and the commission window of the Matter device could be opened. But sometimes the MatterSupport window will show "Pairing Failed". The total error is: [1E1D8753] Failed to perform Matter device setup setup: Error Domain=HMErrorDomain Code=18 "Pairing Failed" UserInfo={HFErrorUserInfoOptionsKey={
HFErrorUserInfoOptionDescriptionKey = "Pairing Failed";
HFErrorUserInfoOptionTitleKey = "\U65e0\U6cd5\U6dfb\U52a0\U914d\U4ef6";
}, NSLocalizedDescription=Pairing Failed, NSUnderlyingError=0x3009e8240 {Error Domain=HAPErrorDomain Code=15 "Failed to pair Matter Accessory in time" UserInfo={NSLocalizedDescription=Failed to pair Matter Accessory in time, NSUnderlyingError=0x3009e86c0 {Error Domain=HAPErrorDomain Code=24 "(null)"}}}}.
From the log I can see, the Function selectWiFiNetwork(from wifiScanResults: [MatterAddDeviceExtensionRequestHandler.WiFiScanResult]) async throws -> MatterAddDeviceExtensionRequestHandler.WiFiNetworkAssociation of the RequestHandler.swift file will be called and commissionDevice(in home: MatterAddDeviceRequest.Home?, onboardingPayload: String, commissioningID: UUID) will NOT called. Sometimes the RequestHandler class will not be called at all, this means the first function validateDeviceCredential will not be called. But ,when this happens, the iPhone will Continuously can NOT add device for a long time, sometimes it gets better inexplicably. Even under normal circumstances, the probability of successfully adding a device is less than 50% and very slowly. When using Apple Home app, the success rate is very high, almost 100%, and very fast.
So, can you help me identify where the problem is and what areas need attention? Thank you very much!
Finally, I often encounter logs like this:
nw_browser_dns_service_browse_callback [B3] not in ready or waiting state
Do you know what it means and whether it will affect the equipment distribution network? My testing machine is iPhone 12, operating on iOS 18 and above 17.0.
Thank you very much!
Hi, I've been trying for an hour to turn the symbols in sf symbols from left to right to right to left, I'd appreciate some help
I recently submitted a new app for review, but it has been rejected multiple times for vague reasons. The most recent rejection reason I received was unclear, leaving me unsure of what improvements are needed to get the app approved for the App Store.
Does anyone have any advice on how to address this?
Additionally, to Apple reviewers: Could you please provide more detailed feedback to help developers improve their apps? The repeated review process takes a significant amount of time, and guessing what needs to be fixed without clear guidance makes it even more challenging.
#################################
The latest rejection reason I got is:
Guideline 4.0 - Design
We noticed an issue in your app that contributes to a lower-quality user experience than App Store users expect:
Your app included hard to read type or typography.
Since App Store users expect apps to be simple, refined, and easy to use, we want to call your attention to this design issue so you can make the appropriate changes.
Next Steps
Please revise your app to address all instances of the issue identified above.
Hi there. Our designer is designing our app in Figma with the navigation element with compact size navigation bar, and large title. I couldn't find an API to actually configure the nav bar to be compact while keeping the large title enabled. Figma uses the libraries provided by Apple so it's weird I can't find such configuration in iOS26.
I'm adding a screenshot of the options in Figma.
First option is: Large size & large text.
The one our designer is using is compact size & large text.
I am creating a Generate note app but I don't see the text in the button when I applied the MeshGradient. I removed the Mesh Gradient and text is there. Need some help to find the issue. I am new to app Development and I am learning how to use it. Below is the code:
import SwiftUI
struct ContentView: View {
@State private var inputText: String = ""
@State private var isLoading: Bool = false
var body: some View {
ZStack {
Color(.systemGray6).edgesIgnoringSafeArea(.all)
VStack (spacing: 20) {
Text("Generate Notes")
.font(.title)
.fontWeight(.bold)
.frame(maxWidth: .infinity, alignment: .leading)
Text("Transform your thoughts into well-structured notes using artificial intelligence.")
.font(.subheadline)
.foregroundStyle(.secondary)
.frame(maxWidth: .infinity, alignment: .leading)
TextEditor(text: $inputText)
.frame(height: 200)
.padding()
.background(RoundedRectangle(cornerRadius: 16)
.fill(Color(.systemGray6)))
Button(action: {}) {
HStack {
if isLoading {
ProgressView()
.tint(.white)
} else {
Image(systemName: "sparkles")
}
Text(isLoading ? "Generating..." : "Generate Notes")
}
.padding()
.frame(maxWidth: .infinity)
.background(
MeshGradient(width: 3, height: 3, points: [
.init(0, 0), .init(0.5, 0), .init(1, 0),
.init(0, 0.5), .init(0.5, 0.5), .init(1, 0.5),
.init(0, 1), .init(0.5, 1), .init(1, 1)
], colors: [
.blue, .purple, .indigo,
.orange, .white, .blue,
.yellow, .green, .mint
])
)
.mask(
RoundedRectangle(cornerRadius: 16)
.stroke(lineWidth: 16)
.blur(radius: 8)
)
.overlay(
RoundedRectangle(cornerRadius: 16)
.stroke(.white, lineWidth: 1)
.blur(radius: 1)
.blendMode(.overlay)
)
.background(.black)
.foregroundColor(.white)
.cornerRadius(16)
.background(
RoundedRectangle(cornerRadius: 16)
.stroke(.black.opacity(0.5), lineWidth: 1)
)
.shadow(color: .black.opacity(0.15), radius: 20, x: 0, y: 20)
.shadow(color: .black.opacity(0.1), radius: 15, x: 0, y: 15)
}
.disabled(isLoading || inputText.isEmpty)
Spacer()
}
.padding(32)
.background(Color(.systemBackground))
.cornerRadius(44)
.shadow(color: .black.opacity(0.1), radius: 20, x:0, y:10)
}
}
}
#Preview {
ContentView()
}
Hi,
I want to generate some sample datas for demonstrating the functions of my app when the app launched. My codes are as followings:
func generateSampleData() {
let hasLaunchedKey = "HasLaunchedBefore"
let defaults = UserDefaults.standard
if !defaults.bool(forKey: hasLaunchedKey) {
//generate the demo data
}
defaults.set(true, forKey: hasLaunchedKey)
}
And I put the func in a view's onAppear modifier. I found every time I go the view, it generates the demo data again, which results in producing a lot of demo data. But I have set the status of the function running in the userdefault. Why did it happen?
Best Wishes,
我设计了一个可以键盘输入的蓝牙HID设备,被iphone蓝牙连接后,iphone无法弹出系统键盘,我正试图寻求可以通过修改HID设备代码来解决的方案。
I have been battling the new Icon Composer app for 2 days trying to build an app icon. However, I cannot get it to import any files. I have used the Apple provided App Icon Template. I have exported my layers to .svg and when I open the finder, everything is disabled. I can't find help for this anywhere. I am on Sequoia on my Mac and not sure how to design this app icon without access to the composer.
Does Apple Allow for iOS Native Apps to be vetted by third party mobile app vetting companies?
Hello All,
I used to own an app named LOLIIPOP, and am in the process of transferring it to my new apple account.
I am having two problems....
How do I transfer the source code and binary to my new apple account?
My developers have an old code, so I need to send them the LAST code they uploaded to the App Store.
How do I do that as well???
Please any help!!!
Thanks,
Mr. LM
I called the viewWillDisappear method in UIViewController
AVCaptureSession *session = self.session;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
if (!session.running) {
[session startRunning];
}
});
I called the viewWillDisappear method
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
AVCaptureSession *session = self.session;
if (session && session.running) {
[session stopRunning];
}
});
But when the user exits the background and returns to the current page, clicking 'Return' will cause an exception
Abnormal information:
#36 Thread
SIGSEGV
SEGV_ACCERR
libdispatch.dylib
_dispatch_source_set_timer + 32
one
PrivacyAccounting
0x00000001a5ede000 + 533590244180685288
two
PrivacyAccounting
0x00000001a5ede000 + 533590244180685288
three
PrivacyAccounting
0x00000001a5ede000 + 1236823037899193652
four
libdispatch.dylib
0x000000018ea01000 + 3414669699500290324
libsystem_pthread.dylib
_pthread_wqthread + 14360117738498687264
hi all,
i have dating app, approved in google store, and working website
but i cant get approval from apple review team
( Guideline 4.3(b) - Design - Spam)
can someone help/suggest how to solve it
our app has 2000 clients already
Hello,
I recently submitted my app to the Apple Store and received a rejection under Guideline 4.3(a) - Design - Spam, stating that my app is similar to others on the store. However, my app has a unique feature set, offers more functionality and content than competitors, and is completely free with ad monetization, unlike most similar apps that require subscriptions.
I have spent five months developing this app from scratch, ensuring it provides an original and valuable experience for users. I did not use an app template or repackaged code, and my app is not a reskinned version of any existing app. I genuinely believe it brings meaningful differentiation to the market.
I would appreciate any guidance on how I can better communicate my app’s uniqueness to the review team or what specific aspects I should adjust to comply with Apple's guidelines.
Thank you for your time and support.
I'm trying to setup my view so that there's (in order from top of display to bottom) a VStack with some content, followed by a List, followed by another VStack with a couple buttons where progressive blurs separate the list and the two VStack's content. Now, in the current version of my app when the user scrolls up or down, the list just cuts off. I'm having a very difficult time maintaining the entire view's vertical positioning while adding these blurs with ZStack. The code below is the current implementation with an attempted progressive blur. Right now, it's close, but the list is acting exactly how I don't want it - anchoring to the top of the display (its natural position) and causes the toolbar to blur when scrolled under (I can't disable toolbar without losing my toolbarItems either). Any help is appreciated.
NavigationStack {
VStack {
ZStack {
List(filteredItems) { item in
NavigationLink(destination: ItemDetailView(item: item)) {
HStack(spacing: 15) {
Image(systemName: item.icon)
VStack(alignment: .leading) {
Text(item.name)
Text("")
}
.multilineTextAlignment(.leading)
}
.padding(.vertical, 5)
}
}
.scrollIndicators(.hidden)
.scrollContentBackground(.hidden)
VStack(spacing: 5) {
if #available(iOS 18.0, *) {
Image(systemName: "plus.square.on.square.fill")
.resizable()
.scaledToFit()
.frame(maxHeight: 50)
.symbolEffect(.bounce.up, options: .nonRepeating)
} else {
Image(systemName: "plus.square.on.square.fill")
.resizable()
.scaledToFit()
.frame(maxHeight: 50)
}
Text("Items")
.font(.largeTitle.bold())
Text("Create, View, and Manage Your Items")
.font(.system(size: 12).weight(.bold))
.multilineTextAlignment(.center)
ScrollView(.horizontal) {
HStack(spacing: 20) {
filterButton(icon: "car.fill", color: .red, label: "Auto")
filterButton(icon: "cart.fill", color: .purple, label: "Shopping")
filterButton(icon: "laptopcomputer", color: .blue, label: "Tech")
filterButton(icon: "airplane", color: .orange, label: "Travel")
filterButton(icon: "gamecontroller.fill", color: .green, label: "Entertainment")
}
.padding(.leading, 25)
}
.scrollBounceBehavior(.basedOnSize)
.scrollIndicators(.hidden)
Spacer()
}
.padding(.top)
VStack {
Rectangle()
.fill(.thinMaterial)
.frame(height: 300)
.mask {
VStack(spacing: 0) {
LinearGradient(colors: [Color.black.opacity(0),
Color.black.opacity(0.383),
Color.black.opacity(0.707),
Color.black.opacity(0.924),
Color.black],
startPoint: .bottom,
endPoint: .top)
.frame(height: 400)
Rectangle()
}
}
Spacer()
}
.ignoresSafeArea()
VStack {
Spacer()
Rectangle()
.fill(.thinMaterial)
.frame(height: 200)
.mask {
VStack(spacing: 0) {
LinearGradient(colors: [Color.black.opacity(0),
Color.black.opacity(0.383),
Color.black.opacity(0.707),
Color.black.opacity(0.924),
Color.black],
startPoint: .top,
endPoint: .bottom)
.frame(height: 100)
Rectangle()
}
}
}
.ignoresSafeArea()
VStack(spacing: 12) {
Spacer()
Button {
showingAddItemView.toggle()
} label: {
HStack {
Image(systemName: "plus.circle")
Spacer()
.frame(width: 7)
Text("New Item")
.padding(.trailing, 3)
}
#if os(visionOS)
.padding(.vertical)
#endif
}
.padding(10)
#if os(iOS)
.background {
Capsule()
}
#endif
NavigationLink("Continue") {
}
}
.padding()
I am developing an app that requires calling the iPhone's Face ID module to scan users' facial data. Where can I find Apple's design resources and guidelines for Face ID? The Face ID resources available in Figma are incomplete, and I need more support.
For example, in the iPhone settings, the scenario: the UI interface for scanning the user's face to collect data, specifically the circular design in the "How to Set Up Face ID" screen.
We're using StoreKit for in-app purchases on iOS, and our backend has the server notification URL configured. However, during subscription renewals, Apple's server doesn't send any requests to our endpoint. What could be causing this?
When receiving or dialing a call, the green (answer) and red (decline) icons appear blurry, and there is a black screen overlay around the icons. This makes it difficult to interact with the call interface properly.
I'm coding an iPhone app using Swift and I'm getting this scoping error. Attached.
Bonjour à tous, je voudrais savoir comment avance mon dossier sur les applications que j’ai créé,comment puis-je faire? Et sinon quelqu’un connaît-il la Durée exacte quand APPLE envoie le code de vérification pour mes applicationà!???