在iOS 13中,可以使用平移手势关闭使用表单和页面样式的模式演示。在我的一个表单中,这是有问题的,因为用户会拖入该框,从而干扰手势。它将屏幕下拉而不是画一条垂直线。
如何在显示为图纸的模态视图控制器中禁用垂直滑动以消除手势?
设置isModalInPresentation = true仍然允许将工作表拉下,但不会关闭。
我试图了解如何利用自动布局相对于其他视图按百分比定位项目.
例如,我最近了解到,您可以使用以下命令指定视图的底部应比其superview的底部高出4%:
self.view.addConstraint(NSLayoutConstraint(item: label, attribute: .Bottom, relatedBy: .Equal, toItem: self.view, attribute: .Bottom, multiplier: 0.96, constant: 0))
Run Code Online (Sandbox Code Playgroud)
这对我来说很有意义,因为1的乘数会在视图的底部对齐它,因此您可以通过将乘数更改为0.96来将该数量减少4%.
但是你怎么能在另一个方向做同样的事情呢?你想指定一个标签的顶部应该从superview的顶部开始下降4%.如果您使用相同的行但是将属性更改为.Top,这意味着它将比superview的顶部高4%(但它实际上不会将其移出屏幕).你不能有一个我不认为的负乘数,而且我不相信大于1的值在常数为0时会做任何事情.所以你如何得到这个设置?
我有同样的问题来实现前导和尾随.尾随很容易.如果你想从右边10%:
self.view.addConstraint(NSLayoutConstraint(item: label, attribute: .Trailing, relatedBy: .Equal, toItem: self.view, attribute: .Trailing, multiplier: 0.9, constant: 0))
Run Code Online (Sandbox Code Playgroud)
这是有道理的,因为你拨回0.1或10%而不是完全对齐1.0.但你如何做同样的领导?我以为你可以设置标签相对于视图尾部的前导,然后将乘数设置为0.1.在我看来,这意味着标签将从最右边开始,然后被拨回90%,因此从左边获得所需的10%.但事实并非如此,我不确定为什么.
你能解释一下这是如何工作的,如何正确使用乘数来获得这些相对布局?
为了方便起见,假设您想要创建一个标签,该标签具有超视图高度的10%的顶部和底部,并且尾随并超过超视图宽度的10%.在iPhone的纵向上,标签上方和下方的填充比在左侧和右侧的填充更多,就像这样(是的,它是按比例绘制的):
但是,让我们在iPad上说它将会在一个完美的正方形视图中显示出来.因此,填充将是相同的数量,如下所示:
问题是如何将这些约束定义为动态值,而不是为常量设置固定值.我已经知道如何做到底部和尾随,但顶部和领先让我难过.我希望了解如何使用乘数来进行更高级的布局,例如,指定标签的顶部应该位于另一个标签底部下方10%,而不是将其设置为固定常量.
我想实现UIVisualEffectView将模糊效果应用于视图以显示其背后的视图.
这个应该有背景模糊的视图UITableViewController是嵌入在a中的UINavigationController,它将在iPad上以popover呈现,或者它将在iPhone上以模式全屏显示,这要归功于iOS 8自适应segues(Present as Popover).当这个视图控制器在弹出框中时,我希望背景模糊弹出框下面的内容,当它全屏显示时,我希望背景模糊前一个视图控制器.
我试图实现这个并且没有成功.我甚至无法使模糊效果适用于弹出窗口.我认为这段代码可以解决问题:
//In viewDidLoad on the UITableViewController subclass:
let effectView = UIVisualEffectView(effect: UIBlurEffect(style: .Light))
effectView.frame = tableView.frame
tableView.addSubview(effectView)
Run Code Online (Sandbox Code Playgroud)
我也尝试添加子视图tableView.backgroundView,我尝试设置backgroundView为我effectView,我尝试使用Autolayout约束而不是设置框架,但没有任何工作.你能帮助我完成所期望的行为吗?
我想要获得的一个例子:
iPad popover:

iPhone模态演示:

uitableview uipopovercontroller modalviewcontroller ios swift
是否可以NSBundle从应用扩展程序中获取包含应用程序?我想获取主应用程序的显示名称,而不是扩展程序的显示名称.
我想对用户库中的照片应用过滤器,然后将其写回磁盘.我正在使用UIImageJPEGRepresentation.此函数采用a UIImage和compressionQuality0.0到1.0之间的值.因为我想保留原始质量,我将其设置为1.0.但我发现这实际上创建了一个文件大小比原始文件更大的图像文件,甚至更大.我注意到在Apple的Sample Photo Editing Extension应用程序中,他们总是将质量设置为0.9.我试过了,它输出的文件大小接近原始照片文件大小.这对我来说没有意义.有人可以解释一下吗?始终使用0.9是否合适?iOS相机是否使用该值压缩它,因此0.9是原始质量?或者为什么0.9实际上不是1.0,如果没有更好的质量?
NSData *renderedJPEGData = UIImageJPEGRepresentation(image, 0.9f);
Run Code Online (Sandbox Code Playgroud) 我试图理解在开发32位和64位架构时如何影响开发.根据我迄今为止所研究的内容,int无论运行应用程序的设备的架构如何,我都知道总是4个字节.但是NSInteger32位设备上是4个字节,64位设备上是8个字节.我得到的印象NSInteger是"更安全"并推荐,但我不确定是什么原因.
我的问题是,如果你知道你正在使用的可能值永远不会很大(也许你正在使用它来索引一个包含200个项目的数组或存储数组中对象的数量),为什么要将它定义为一个NSInteger?当你不使用它时,这只会占用8个字节.int在这些情况下将它定义为更好吗?如果是这样,在什么情况下,你会希望使用NSInteger(而不是int或long等)?显然,如果你需要使用更大的数字,你可以使用64位架构.但是如果你需要它也可以在32位设备上工作,你会不会使用long long它,因为它在32位设备上也是8字节?我不明白为什么会使用NSInteger,至少在创建在两种架构上运行的应用程序时.
此外,我无法想到一个接收或返回原始类型的方法 - int而是利用NSInteger,并且想知道它是否还有更多,而不仅仅是值的大小.例如,(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section.我想明白为什么会这样.假设有一个2,147,483,647行的表,当你再添加一个32位设备时会发生什么 - 它是否会回绕到-2,147,483,647?在64位设备上,它将是2,147,483,648.(为什么返回有符号值?我认为它应该是无符号的,因为你不能有负数行.)
最后,我想更好地理解这些数字数据类型的实际使用,也许一些代码示例会很棒!
我有一些非常简单的代码,它非常适合我想要实现的外观.我有两个显示为"盒子"的div,它们包含在一个外部div中,它是boxContainer.我把盒子放在彼此旁边,而不是一个放在另一个上面,它们在屏幕中间完美对齐.随着浏览器宽度变小/变大,框宽度缩小/增长,如果浏览器窗口变得太小,则框重新定位为一个在另一个上面,同时保持在页面上居中.完善.
唯一的问题是盒子在底部而不是顶部对齐.因为第二个框中的文本较少,所以它会在页面下方向下推,以与第一个框的底部对齐.我希望它们在顶部对齐.
我相信这是由display:inline-block引起的,但我不知道为什么,我不知道如何修复它并保留我上面列出的相同功能.
如果你可以帮助我,我一定会很感激!!
#boxContainer {
width:80%;
margin:0 auto;
text-align:center;
}
.box {
display:inline-block;
width:35%;
margin:20px;
border:solid 5px;
border-radius:40px;
}Run Code Online (Sandbox Code Playgroud)
<div id="boxContainer">
<div class="box">
<h3>BOX 1</h3>
<p>TEXT GOES HERE, blaha dlfjas fakfasldfjas fkdf lasfjwio we dklajdakfliwo wklw jdkas fdsaj fjdsfwoif ajkdl kdalfej woja dklf woef adkiweoj daljidw odal fjwe ewew kalwoie ea falk blaha dlfjas fakfasldfjas fkdf lasfjwio we dklajdakfliwo wklw jdkas fdsaj fjdsfwoif ajkdl kdalfej woja dklf woef adkiweoj daljidw odal fjwe ewew kalwoie ea falk</p>
</div>
<div class="box"> …Run Code Online (Sandbox Code Playgroud)我想用我用于访问数据库中的列的键的嵌套枚举替换我的全局字符串常量.
结构如下:
enum DatabaseKeys {
enum User: String {
case Table = "User"
case Username = "username"
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
数据库中的每个表都是一个内部枚举,表的名称是枚举的标题.每个枚举中的第一个案例将是表的名称,以下案例是其表中的列.
要使用它,它非常简单:
myUser[DatabaseKeys.User.Username.rawValue] = "Johnny"
Run Code Online (Sandbox Code Playgroud)
但我会使用这些枚举了不少.必须附加.rawValue到每个实例将是一个痛苦,它不像我希望的那样可读.如何在不必使用的情况下访问String值rawValue?如果我能做到这一点,那就太好了:
myUser[DatabaseKeys.User.Username] = "Johnny"
Run Code Online (Sandbox Code Playgroud)
请注意,我正在使用Swift 2.如果有更好的方法来实现这一点,我很乐意听到它!
我想知道iOS 8中是否有新的API允许您在键盘扩展中播放标准的键盘点击声 - 只有在启用键盘点击并且设备未处于静音状态时才播放.我还没有见过这样的API,我也没有看到任何关于这个的问题.
我知道在以前的iOS版本中,如果您实现了自定义输入或键盘附件视图(通过[[UIDevice currentDevice] playInputClick];采用UIInputViewAudioFeedback协议并返回YES后enableInputClicksWhenVisible),这是可能的.这只有在那种情况下才有可能.键盘扩展名既不是那些.
是否可以使用自定义iOS键盘播放输入点击?
请注意,这个问题是相关的,但是他们想要一个自定义声音,并且该解决方案不会尊重用户播放键盘点击的偏好 - 即使禁用该选项也会始终播放它们.
我想做一个UIKeyCommand只使用[return]密钥的东西.到目前为止,我已经尝试过:
UIKeyCommand *selectCommand = [UIKeyCommand keyCommandWithInput:@"\n" modifierFlags:0 action:@selector(chooseSelection:)];
Run Code Online (Sandbox Code Playgroud)
输入键没有全局常量,例如up,down,left,right和escape(from UIResponder.h):
// These are pre-defined constants for use with the input property of UIKeyCommand objects.
UIKIT_EXTERN NSString *const UIKeyInputUpArrow NS_AVAILABLE_IOS(7_0);
UIKIT_EXTERN NSString *const UIKeyInputDownArrow NS_AVAILABLE_IOS(7_0);
UIKIT_EXTERN NSString *const UIKeyInputLeftArrow NS_AVAILABLE_IOS(7_0);
UIKIT_EXTERN NSString *const UIKeyInputRightArrow NS_AVAILABLE_IOS(7_0);
UIKIT_EXTERN NSString *const UIKeyInputEscape NS_AVAILABLE_IOS(7_0);
Run Code Online (Sandbox Code Playgroud)
还有什么我可以尝试捕获return/enter键吗?
ios ×8
swift ×3
objective-c ×2
32bit-64bit ×1
64-bit ×1
alignment ×1
audio ×1
autolayout ×1
css ×1
enums ×1
html ×1
ios13 ×1
ios7 ×1
ios8 ×1
keyboard ×1
nsbundle ×1
nsinteger ×1
string ×1
swift2 ×1
uiimage ×1
uikeycommand ×1
uiresponder ×1
uitableview ×1