小编Gob*_*obe的帖子

由于来自其自身文件的私有保护级别,结构初始值设定项无法访问

使用 Swift 4,我在同一个文件中定义了两个结构,其中一个是私有的,所以这个文件是唯一可以访问它的。此外,我依赖于结构的默认初始值设定项,即我没有明确定义一个:

private struct A {
  private let string: String
  func foo() {}
}

struct B {
  func bar() {
    A(string: "baz").foo()
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,这将无法编译并出现以下错误:

由于“私有”保护级别,“A”初始值设定项无法访问

我不想A访问其他文件,所以我试图通过制作它来解决它fileprivate(这应该相当于private在这种情况下),但是会发生相同的编译错误(并且它仍然抱怨保护级别是private)。

如何在保留此结构的同时避免显式初始化fileprivate

swift

14
推荐指数
1
解决办法
9435
查看次数

iOS7 - 获取UIView的有用高度(不包括statusBar,navigationBar和tabBar)

介绍

这是一个相当常见的问题,但我有一些额外的观点需要注意.其中之一就是我不想让我的酒吧不透明.我喜欢iOS7半透明条.

我有一个UIImageView内部UIScrollView,我试图设置初始scrollView.zoomScale以适应屏幕中的图像,就像股票照片应用程序一样.这意味着:图像不应被裁剪,应尽可能地填满屏幕.

然而,对于我的应用程序,这有点复杂,因为我有可见statusBar,navigationBartabBar.我将采用解决方案来隐藏它们,直到用户触摸屏幕,但我仍然很想知道隐藏的解决方案是不可取的.

到目前为止已完成

我目前正在根据图像高度和视图高度之间的关系计算缩放:

double heightRelation = self.image.size.height / self.view.frame.size.height;
Run Code Online (Sandbox Code Playgroud)

将1/heightRelation应用于后scrollView.zoomScale,图像仍然大于有用空间.然后我从文档中找到了iOS7默认高度(20pt)statusBar,tabBar(49pt)和navigationBar(44pt)以及来自:

NSLog(@"status : %f", CGRectGetHeight([[UIApplication sharedApplication] statusBarFrame]));
NSLog(@"tab : %f", self.tabBarController.tabBar.frame.size.height);
NSLog(@"nav : %f", self.navigationController.navigationBar.frame.size.height);
Run Code Online (Sandbox Code Playgroud)

......玩了一会后,我发现确切的组合是从视图的高度减去statusBarnavBar高度:

double heightRelation = self.image.size.height / (self.view.frame.size.height - CGRectGetHeight([[UIApplication sharedApplication] statusBarFrame]) - self.navigationController.navigationBar.frame.size.height);
Run Code Online (Sandbox Code Playgroud)

这适用于纵向模式,但不适用于横向模式.我知道我也可以根据方向设置缩放但是......代码可能会变得不必要的丑陋.

所以我问你:获得有用高度的最佳方法是什么?

PS:Interface Builder的选项"调整滚动视图插入"无效.

xcode objective-c uinavigationbar uitabbar ios7

3
推荐指数
1
解决办法
1859
查看次数

UIButton:primaryActionTriggered 与 touchUpInside

基本上我想知道controlEvents.primaryActionTriggered.touchUpInsidecontrolEvents之间有什么区别,UIButton因为它们似乎被类似地触发。

uibutton uikit swift

1
推荐指数
1
解决办法
487
查看次数

标签 统计

swift ×2

ios7 ×1

objective-c ×1

uibutton ×1

uikit ×1

uinavigationbar ×1

uitabbar ×1

xcode ×1