我已经在Objective C中开发了一个应用程序,它在所有iPhone手机上运行良好.但是当我在iPhone X Simulator中运行这个应用程序时,我不知道如何在UITableView的顶部获得一些额外的空间(大约20-22像素).我尝试了所有这些解决方案,但以下都没有帮助我:
self.tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.tableView.bounds.size.width, 0.01f)];
self.edgesForExtendedLayout = UIRectEdgeNone;
[tblProducts setSectionHeaderHeight:0];
self.automaticallyAdjustsScrollViewInsets = NO;
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return CGFLOAT_MIN;
}
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return CGFLOAT_MIN;
}
Run Code Online (Sandbox Code Playgroud)
我知道这可以通过设置我的表视图contentInset来实现:
tblProducts.contentInset = UIEdgeInsetsMake(-30, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)
有没有其他解决方案来解决iPhone X的这个问题?
我在ViewDidLoad中查看了我的表视图框,它是(0,64,WIDTH,HEIGHT),状态栏有问题吗?
请建议我.先感谢您!
AVCaptureSession在 iPhone X 上以视频模式运行时,有没有办法让手电筒保持打开状态?
我有 Swift 4 代码,可以打开手电筒,然后开始从相机获取视频帧。我知道它适用于 iPhone 4,5 和 6。但是对于 iPhone X,当我开始捕获会话时,手电筒没有亮起。
session = AVCaptureSession()
if self.session.canSetSessionPreset(AVCaptureSession.Preset.inputPriority) {
self.session.sessionPreset = .inputPriority
}
//This is the wide angle camera device
camera = AVCaptureDevice.default(for: AVMediaType.video)
//I could also use telephoto, same problem
//camera = AVCaptureDevice.default(.builtInTelephotoCamera, for: AVMediaType.video, position: .unspecified)
if camera == nil {
return
}
if self.camera.isTorchModeSupported(.on) {
camera.activeFormat = selectBestFormat(camera.formats)
camera.torchMode = .on
try? camera.setTorchModeOn(level: 1.0)
camera.unlockForConfiguration()
}
let cameraInput = try! AVCaptureDeviceInput(device: self.camera)
let videoOutput = …Run Code Online (Sandbox Code Playgroud) 我有以下问题:我构建了一个键盘扩展,这是系统键盘的替代键盘。在所有较旧的 iPhone 型号中,它都可以正常工作,但在 iPhone X 上则不然。我的问题是,键盘视图的高度从 216px (iPhone 8 ,8+ , ...) 减少到 141px (iPhone X)。由于高度较低,我的键盘按钮现在更小,以达到良好的用户可用性。
我确实使用了 .xib 文件来创建 UI,我以编程方式添加所有 UI - 项目。
是否可以为键盘扩展视图获得更多空间(高度)(特别是 iPhone X)?
第一个屏幕截图未应用SafeAreaView,第二个屏幕截图正在应用SafeAreaView
如清楚所示,Stack header与以前相比,它看起来笨重。无论如何,有什么我们可以SafeAreaView只适用于底部的?
我正在尝试在新的 Xcode 项目上设置启动图像,但无论我在 LaunchScreen.storyboard 中更改什么,应用程序和启动画面都不会占据 iPhone X 屏幕的整个高度。但是更改确实生效,所以我知道这是正确的文件。
故事板设置:

在我的图标/启动设置上使用它:

我在手机上看到的,记住状态栏被切断了......也许这与它有关?

我的目标是使应用程序全屏显示状态栏在 Android 和 iPhone 中可见,就像在 Expo 中一样,但在 React Native 中
这是正在发生的事情:

我的目标是移除这个灰色部分,让应用占据这部分,同时显示状态栏,就像在 Expo 中一样。
我已经试过了:https : //reactnative.dev/docs/statusbar.html#sethidden
但是所有的灰色顶部都变成黑色并且没有状态栏
我已经尝试将其添加到 Android 中的 styles.xml 中:
<item name="android:windowFullscreen">true</item>
Run Code Online (Sandbox Code Playgroud)
但什么都没有改变(并且只能在 Android 中使用)
statusbar react-native android-navigation-bar iphone-x android-9.0-pie
我有两个UIViewController.第一个控制器仅用于纵向,它包含UIScrollView.第二个控制器仅用于横向.当我尝试从第一个屏幕打开第二个屏幕时,UIScrollView内容在第一个控制器上被X移动到-44.此行为仅适用于iPhone X.有谁知道为什么会发生这种情况?
我有一个水平分页UIScrollview,以下是我的VFL前导/尾随约束H:|-0-[ScrollView]-0-|(与superview对齐).
我safeAreaInsets在iPhone X中左/右横向.
这是一个错误吗?或者我错过任何Apple方式,当我们不需要时,这些插入不会被应用?
我试图在 iPhone X 上模拟 home 指示器的行为,但不知道如何。在某些应用程序中,主页指示灯变暗,您必须滑动它才能激活正常行为。我在控制器中找到了一个隐藏指示器的选项,但这不是我要找的。例如,在 Clash Royale 和 Clash of Clans 中,home 指示灯变暗,然后当你向上滑动它时,指示灯变亮,如果你再次这样做,它会激活“home”。使用我发现的 API 隐藏指标真的只会让它表现得很奇怪。
这是我正在使用的 API,但它不像我在其他应用程序中看到的那样工作。启用自动隐藏后,指示器将消失,直到您滑动并立即调用主页操作。这不好,因为目的是防止无意中滑动到主屏幕:
override func prefersHomeIndicatorAutoHidden() -> Bool {
return true
}
Run Code Online (Sandbox Code Playgroud)
我更喜欢的行为是指示灯变暗,然后在您向上滑动(但不是回家)时激活(变亮),然后再次向上滑动以触发主页。这种行为在 Supercell 应用程序中是不变的,但可能不是内置行为。
为了查看差异,您可以查看其中一个 Supercell 应用程序(在 iPhone X 上),并查看仅设置属性的应用程序。
我正在使用模拟器在iphone x上测试我的全部我已经搜索了能够检测到iPhone x的方法但是所有这些都返回false
这是他们的一种方法
struct Device {
// iDevice detection code
static let IS_IPAD = UIDevice.current.userInterfaceIdiom == .pad
static let IS_IPHONE = UIDevice.current.userInterfaceIdiom == .phone
static let IS_RETINA = UIScreen.main.scale >= 2.0
static let SCREEN_WIDTH = Int(UIScreen.main.bounds.size.width)
static let SCREEN_HEIGHT = Int(UIScreen.main.bounds.size.height)
static let SCREEN_MAX_LENGTH = Int( max(SCREEN_WIDTH, SCREEN_HEIGHT) )
static let SCREEN_MIN_LENGTH = Int( min(SCREEN_WIDTH, SCREEN_HEIGHT) )
static let IS_IPHONE_4_OR_LESS = IS_IPHONE && SCREEN_MAX_LENGTH < 568
static let IS_IPHONE_5 = IS_IPHONE && SCREEN_MAX_LENGTH == 568
static let IS_IPHONE_6 = …Run Code Online (Sandbox Code Playgroud) 我正在尝试为 iPhone X 调整我的应用程序的大小,但遇到了问题。目前我像这样定义屏幕尺寸:
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_RETINA ([[UIScreen mainScreen] scale] >= 2.0)
#define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)
#define SCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height)
#define SCREEN_MAX_LENGTH (MAX(SCREEN_WIDTH, SCREEN_HEIGHT))
#define SCREEN_MIN_LENGTH (MIN(SCREEN_WIDTH, SCREEN_HEIGHT))
#define IS_IPHONE_4_OR_LESS (IS_IPHONE && SCREEN_MAX_LENGTH < 568.0)
#define IS_IPHONE_5 (IS_IPHONE && SCREEN_MAX_LENGTH == 568.0)
#define IS_IPHONE_6 (IS_IPHONE && SCREEN_MAX_LENGTH == 667.0)
#define IS_IPHONE_6P (IS_IPHONE && SCREEN_MAX_LENGTH == 736.0)
Run Code Online (Sandbox Code Playgroud)
并根据电话类型进行约束。(是的,我知道不是最佳的,但它是我所做的)
当您使用 iPhone X 模拟器时,出于某种原因,它会像 iPhone 6 一样读取屏幕高度和宽度。
然后我搜索了 stack overflox 并发现了这个: 如何在 …
iphone-x ×13
ios ×10
swift ×3
xcode ×3
ios11 ×2
objective-c ×2
react-native ×2
avfoundation ×1
iphone ×1
statusbar ×1
swift4 ×1
uiscrollview ×1
uistoryboard ×1
uitableview ×1
view ×1
xcode9 ×1