所以以前,在Swift 2.2中我可以使用 Entity.image = UIImagePNGRepresentation(UIImage(named: "Image Name")!)
但现在在Swift 3.0中,似乎我们现在必须使用额外的步骤.Entity.image = NSData(data: UIImagePNGRepresentation(UIImage(named: "Image Name")!))或者相当于的对象UIImage(name: "Image Name")
是否有雨燕3.0一种新的方式,从去UIImage到NSData?
我想知道是否有一种正确的方法来取消在tableview单元格上留下的滑动,以便它向后滑动以隐藏按钮.我真的不确定如何正确地说出来,哈哈.但请参阅下面的GIF.在第一个GIF中,按下取消按钮后没有代码,按钮保持可见.
我唯一的想法就是用这段代码重新加载单元格self.tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)但是这样可以看出按钮向上移动,而我更喜欢看起来单元格移位到右边的位置.请参阅下面的重新加载GIF.
我该怎么做呢?请参阅下面的我添加按钮的代码及其功能.
override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {
let edit = UITableViewRowAction(style: UITableViewRowActionStyle.Normal, title: "Edit") {
(action, indexPath) in
if (indexPath == self.indexSelect) {
print("Editting Selected Cell")
} else {
print("Editting a difference cell than selected")
}
let section: Sections = self.frc.objectAtIndexPath(indexPath) as! Sections
let count: Int = self.sectionCount(section.section!)
var msg: String?
let sectionName: String = section.section!
if (count > 0) {
msg = "There are \(count) other Items using this …Run Code Online (Sandbox Code Playgroud) 我做了一个习惯UIStoryboardSegue,但当它解开时,它似乎导致我UINavigationBar变黑,然后回到它的正确颜色.请参阅下面的GIF.
我的自定义segue只是让新的ViewController从顶部下来,然后返回到顶部.
这是UIStoryboardSegue代码:
import UIKit
class SlideDownSegue: UIStoryboardSegue {
var duration: Double = 0.5
override func perform() {
let screenHeight = UIScreen.main.bounds.size.height
let toVC = self.destination
let fromVC = self.source
toVC.view.transform = CGAffineTransform(translationX: 0, y: -screenHeight)
UIApplication.shared.keyWindow?.insertSubview(toVC.view, aboveSubview: fromVC.view)
UIView.animate(withDuration: duration, delay: 0, options: UIViewAnimationOptions.curveEaseInOut, animations: {
toVC.view.transform = CGAffineTransform.identity
}, completion: {
success in
fromVC.present(toVC, animated: false, completion: nil)
})
}
}
class UnwindSlideDownSegue: UIStoryboardSegue {
override func perform() {
let screenHeight = …Run Code Online (Sandbox Code Playgroud) 我希望我能得到一些帮助来解释为什么会发生这种情况。我一直在努力将我一直在学习/构建的应用程序从 UIKit 切换到 SwitfUI,因为这似乎是未来......而且学习起来很有趣。
当我在手机上尝试时,它似乎每次都会拉伸。我不确定这里发生了什么。只是 SwiftUI 需要更多工作还是我缺少某个设置?
当我使用"用户定义的运行时属性"时,我很难显示阴影.
如果我使用代码,它似乎完全正常,如下所示.
func formatView(view: UIView, cornerRadius: Bool) {
if (cornerRadius) {view.layer.cornerRadius = 12 }
view.layer.shadowColor = UIColor.black.cgColor
view.layer.shadowOffset = CGSize.zero
view.layer.shadowRadius = 3
view.layer.shadowOpacity = 0.3
}
Run Code Online (Sandbox Code Playgroud)
但是当我使用用户定义的运行时属性尝试它时,它不再显示.这些是我目前正在使用的.
唯一奇怪的是,如果我删除layer.shadowColor属性,那么它似乎再次起作用.但我无法控制颜色.它似乎默认为黑色,但如果我决定选择灰色,我将无法改变它.
这是因为Color属性是UIColor而shadowColor需要CGColor吗?
我将尝试在这里概述我的案例,我想NavigationLink将其变成它自己的结构,以便我可以重新使用它。我使用的所有案例的内部都是相同的,只是文本和图像不同Label。NavigationLink我正在尝试使包含 的新结构NavigationLink具有我用于 的目标视图的参数NavigationLink。
我发现这个链接帮了我大部分忙,但我似乎无法完成最后一英里。
如何将一个 SwiftUI View 作为变量传递给另一个 View 结构
这是我制作的可重用NavigationLink结构:
struct MainMenuButtonView<Content: View>: View {
var imageName: String
var title: String
var description: String
var content: Content
init(@ViewBuilder content: @escaping () -> Content) {
self.content = content()
}
var body: some View {
VStack {
NavigationLink(destination: content) {
Image(imageName)
.resizable()
.frame(width: 100, height: 100)
Text(title)
.font(.title)
Text(description)
.foregroundColor(Color(UIColor.systemGray2))
.multilineTextAlignment(.center)
.font(.footnote)
.frame(width: 175)
}
.buttonStyle(PlainButtonStyle())
}
}
} …Run Code Online (Sandbox Code Playgroud) 我有一个在 SwiftUI 中创建的静态表(或 SwiftUI 中的表单),我对每个表的工作方式感到满意,除了分隔两个静态单元格的线之外。见下图。
我尝试了几种方法,但似乎没有任何效果。你可以看到他们在那里被注释掉了。
struct Settings_CheckedView: View {
@Environment(\.managedObjectContext) private var viewContext
@Environment(\.settings) private var settings
@State private var picker1 = 2
@State private var picker2 = 2
//Tried this first, doesn't seem to affect it.
/*init() {
UITableView.appearance().separatorStyle = .none
}*/
var body: some View {
Form {
Section(header: Text("COMPLETED ITEM BEHAVIOR")) {
VStack {
HStack {
Text("Auto-Delete Completed Items")
Spacer()
}
Picker("", selection: $picker1) {
Text("Off").tag(0)
Text("Immediately").tag(1)
Text("Delay").tag(2)
}
.pickerStyle(SegmentedPickerStyle())
.onChange(of: picker1, perform: { value in …Run Code Online (Sandbox Code Playgroud) 我有一种情况,我正在使用UIScrollView来帮助使用较小手机的用户查看窗口内的全文.我想要显示一个图像图标,如果他们需要滚动(只是为了让他们知道窗口内有更多)但我在使用Swift找到滚动视图的高度时遇到了问题.
这是我的对象的层次结构
基本上,这4个标签适合4.7"iPhone而不是4"iPhone.我尝试设置一些逻辑来检查UIScrollView内容是否大于窗口,但它似乎没有工作.我一直认为高度为零.
我使用scrollHeight = scrollView.contentSize.height,并试图把那里面viewDidLoad(),viewWillAppear()和viewDidLayoutSubviews()但每次它最终被0.
contentSize我应该用它来检查高度是正确的吗?