小编Ash*_*lls的帖子

在隐藏/显示导航栏上查看框架更改?

在我的应用程序中

我有带根视图控制器的导航控制器.

显示/隐藏工作正常的导航栏.

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    BOOL navbarhide=[self.navigationController.navigationBar isHidden];
    [self.navigationController setNavigationBarHidden:!navbarhide animated:YES];


}
Run Code Online (Sandbox Code Playgroud)

效果很好,但是,

隐藏导航栏后,查看框架更改.

如果未隐藏导航栏,则会更改视图框.

当导航栏没有被隐藏时..看到按下按钮,视图的原点位于栏下方,我不想这样,我希望它粘在导航栏的原点[在页面顶部]

当酒吧被隐藏时,它的原始位置是精美的. 我希望视图坚持在这个位置,并在不改变视图框架的情况下转动条形图隐藏/显示.

提前致谢...

编辑设置集self.view.frame没有任何效果.

iphone cocoa-touch objective-c uinavigationcontroller ios

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

UITableViewCell外观不会改变textLabel字体

我的didFinishLaunchingWithOptions函数中有以下代码:

[[[UITableViewCell appearance] textLabel]setFont:[UIFont fontWithName:@"someFont" size:12]];
Run Code Online (Sandbox Code Playgroud)

但由于某些原因,这不会改变我的表格单元格中的文本.

如果在表中委托函数cellForRowAtIndexPath我添加

cell.textLabel.font = [UIFont fontWithName:@"someFont" size:12];
Run Code Online (Sandbox Code Playgroud)

它确实将字体更改为我想要的字体.

有任何想法吗?

appearance uitableview uikit ios

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

Swift:可选的数组计数

在Objective-C中,如果我有以下属性:

@property (strong, nonatomic) NSArray * myArray;
Run Code Online (Sandbox Code Playgroud)

返回多个对象的myArray方法如下所示:

- (NSInteger) numberOfObjectsInMyArray
{
    return [self.myArray count];
}
Run Code Online (Sandbox Code Playgroud)

这将返回数组中对象的数量,或者返回0 myArray == nil;

在Swift中我能想到的最好的等价物是:

var myArray: Array<String>?

func numberOfObjectsInMyArray() -> Int
{
   return myArray ? myArray!.count : 0
}
Run Code Online (Sandbox Code Playgroud)

因此,检查可选数组包含一个值,如果是,则解包该数组并返回该值,否则返回0.

这是正确的方法吗?还是有更简单的东西?

arrays optional swift

6
推荐指数
2
解决办法
2万
查看次数

在iCloud中重命名UIDocument

我正在努力弄清楚如何UIDocument在iCloud文件夹中重命名子类的实例.我尝试使用新网址保存文档...

func renameDocument(to name: String) {

    let targetURL = document.fileURL.deletingLastPathComponent().appendingPathComponent(name)
        .appendingPathExtension("<extension>")

    document.save(to: targetURL, for: .forCreating) { success in
        guard success else {
            // This always fails
            return
        }
        // Success
    }
}
Run Code Online (Sandbox Code Playgroud)

......但这失败了......

Error Domain=NSCocoaErrorDomain Code=513 "“<new-file-name>” couldn’t be moved because you don’t have permission to access “<folder>”." UserInfo={NSSourceFilePathErrorKey=/private/var/mobile/Containers/Data/Application/1A9ACC2B-81EF-4EC9-940E-1C129BDB1914/tmp/(A Document Being Saved By My App)/<new-file-name>, NSUserStringVariant=( Move ), NSDestinationFilePath=/private/var/mobile/Library/Mobile Documents/com~apple~CloudDocs/<folder>/<new-file-name>, NSFilePath=/private/var/mobile/Containers/Data/Application/1A9ACC2B-81EF-4EC9-940E-1C129BDB1914/tmp/(A Document Being Saved By My App)/<new-file-name>, NSUnderlyingError=0x1c4e54280 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}}

......而且只是一个简单的举动......

func renameDocument(to name: …
Run Code Online (Sandbox Code Playgroud)

ios icloud uidocument ios11

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

Core Data 轻量级迁移重命名的属性一直在重命名 id?

我正在使用 xcode 5 为 iPhone 开发应用程序,我使用轻量级迁移来更新核心数据架构。

我在模型版本 1 中创建了一个 User 实体,User有一个名为nameA.

在模型版本2,我重命名UsernameAnameB,我设置nameB的重命名id来nameA。这一步是成功的,之前的值nameA可以在 中找到nameB

然后,我创建的模型版本3添加一个名为另一个实体House,我在3版本中发现,User“SnameB仍然有其重命名ID设置nameA

我认为在模型版本 3 中,User'snameB不应该具有重命名 ID,因为模型版本 3 基于版本 2,而在版本 3 中我没有更改任何User实体

那么我应该删除User's的重命名 IDnameB吗?还是把它留在那里?

有谁知道怎么做?

core-data ios xcode5

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

在Swift中子类化CIFilter

我正在尝试创建CIFilter如下的子类:

class ColorMonochromeFilter: CIFilter {

    required init(red: CGFloat!, green: CGFloat!, blue: CGFloat!) {

        super.init(name: "ColorMonochrome")
        setDefaults()

        let colour = UIColor(red: red, green: green, blue: blue, alpha: 1.0)
        setValue(colour, forKey: kCIInputColorKey)
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

  1. “ ColorMonochromeFilter”类未实现其超类的必需成员
  2. 必须调用超类'CIFilter'的指定初始化程序

似乎指定的初始化程序是init(coder aDecoder: NSCoder!)由于CIFilter符合NSCoding协议,而不是init(name: String!)在的扩展名中声明的CIFilter

我可以通过添加以下内容来消除第一个错误:

    required init(coder aDecoder: NSCoder!) {
        super.init(coder: aDecoder)
    }
Run Code Online (Sandbox Code Playgroud)

(尽管这似乎有些多余!)

有没有办法解决第二个问题?


我想在这里实现的是Swift的等效功能:

@implementation ASHColorMonochromeFilter

    + (ASHColorMonochromeFilter *) filterWithRed: (CGFloat) red green:(CGFloat)green blue:(CGFloat)blue
    {
        ASHColorMonochromeFilter * filter = (ASHColorMonochromeFilter …
Run Code Online (Sandbox Code Playgroud)

ios cifilter swift

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

UIAlertAction带有不同颜色的按钮文字

我正在尝试创建一个UIAlertAction,第一个按钮为黑色文本,第二个按钮为蓝色.如果我改变色调然后全部变黑,但是没有它我不能将第一个按钮改为黑色.以下是我的代码:

let alert = UIAlertController(title: "", message: "", preferredStyle: .actionSheet)
// alert.view.tintColor = UIColor.black

alert.addAction(UIAlertAction(title: "First", style: .cancel, handler: nil))

alert.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))

self.present(alert, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

uiactionsheet ios swift uialertaction

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

麻烦让UIDocumentBrowserController在基于文档的应用程序中打开文档

我一直在研究一个新的基于文档的应用程序,并且非常高兴新的UIDocumentBrowserController ...试图为文档浏览器推出我自己的解决方案UI很棘手!

我在浏览器创建后打开文档时遇到了一些麻烦.

现在发生的是,当我选择在文档浏览器中创建新文档时,会按预期创建和打开文档,但会记录错误消息.但是,在关闭文档后,即使显示文档,也无法立即或在后续启动时重新打开文件.但是,一个奇怪的线索是,如果我在创建文档后停止运行应用程序,但没有向其添加新信息(触发保存周期),并再次运行项目,我可以正确打开文件.这让我觉得文件被保存的方式就是问题所在.(注意:在此阶段,我正在努力使本地,非/ icloud实现工作,然后我继续进行icloud实现.)

以下是文档保存到磁盘时代码中任何一点的错误消息(或至少大部分时间!):2017-06-20 13:21:58.254938-0500布道设计2 iOS [22454:5000138] [ default] [ERROR]无法获取项目文件的属性值:/// Users/stevenhovater/Library/Developer/CoreSimulator/Devices/9A4364F2-B3A1-4AD9-B680-FB4BC876C707/data/Containers/Data/Application/DD534ED8-C4A3 -40FE-9777-AED961976878 /文档/无标题-9.sermon.错误:错误域= NSFileProviderInternalErrorDomain代码= 1"不允许读者访问该URL." UserInfo = {NSLocalizedDescription =不允许读者访问该URL.}

我怀疑问题在于我的文档类型plists,我试图通过在wwdc 2017 session 229中模仿视频中的设置来设置.

在此输入图像描述 我的文档被一个NSData对象所包围,使用我所采用的UIDocument非常标准的子类实现.(我省略了生成缩略图的代码)

override func contents(forType typeName: String) throws -> Any {  

    print("Saving Document Changes")  
    if sermon != nil {  
        let newData = NSKeyedArchiver.archivedData(withRootObject: sermon!)  

        return newData  
    } else {   
        let newData = NSKeyedArchiver.archivedData(withRootObject: Sermon())  

        return newData       
    }  
}  

override func fileAttributesToWrite(to url: URL, for saveOperation: UIDocumentSaveOperation) throws -> [AnyHashable : Any] {  

    let thumbnail:UIImage = self.createThumbnail() …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch document-based uidocument uidocumentbrowservc

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

iphoneX不能调用preferredsStatusBarHidden

info.plist

<key>UIViewControllerBasedStatusBarAppearance</key>
    <true/>
Run Code Online (Sandbox Code Playgroud)

UIViewController

override var prefersStatusBarHidden: Bool{
        return true
   }
Run Code Online (Sandbox Code Playgroud)

当我使用6p时,可以,但是
iphoneX不能调用,并且StatusBar不隐藏

uistatusbar swift iphone-x

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

使用自定义类而不是 SLComposeServiceViewController 共享扩展

我目前正在使用共享扩展功能。

在这里,当我搜索很多时,似乎总是使用 SLComposeServiceViewController 将带有一些文本内容的图像共享到特定应用程序。

但我希望自定义 UIViewController 类加载了从照片应用程序中选择的图像,在打开时它就像邮件编辑器一样 mail extension on share sheet

所以我得到了这个示例,并按照以下 git hub 链接(第二个)中的说明操作:

是的,它似乎4 years ago是迁移并转换为Swift 4.1版本。在我修改了这些更改并对其进行调试之后。它不像在 GitHub gif 上那样工作。是的,在初始时间,当我在共享表上触摸扩展应用程序时,我可以显示和关闭控制器。但是在我驳回并再次尝试呈现之后,这次它没有在 GitHub gif 上做出反应。

Martin 只显示和隐藏self.view of UINavigationController Y position value. 一旦我按下Cancel or save条形按钮,然后我尝试在共享表上通过扩展打开它,它不起作用并且那里没有反应。

这里是来源 NSExtensionPrincipalClass - EntryViewController

import UIKit  

@objc(EntryViewController)


class EntryViewController : UINavigationController {

init() {
    super.init(rootViewController: ShareViewController())
}

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)!
}

override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
    super.init(nibName: …
Run Code Online (Sandbox Code Playgroud)

ios swift ios8-share-extension share-extension

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