我正在尝试将UIPopoverView添加到我的Swift iOS 8应用程序,但我无法访问PopoverContentSize属性,因为popover没有显示正确的形状.我的代码:
var popover: UIPopoverController? = nil
func addCategory() {
var newCategory = storyboard.instantiateViewControllerWithIdentifier("NewCategory") as UIViewController
var nav = UINavigationController(rootViewController: newCategory)
popover = UIPopoverController(contentViewController: nav)
popover!.setPopoverContentSize(CGSizeMake(550, 600), animated: true)
popover!.delegate = self
popover!.presentPopoverFromBarButtonItem(self.navigationItem.rightBarButtonItem, permittedArrowDirections: UIPopoverArrowDirection.Any, animated: true)
}
Run Code Online (Sandbox Code Playgroud)
输出:
当我通过UIPopoverPresentationController做同样的事情时,我仍然没有完成它.这是我的代码:
func addCategory() {
var popoverContent = self.storyboard.instantiateViewControllerWithIdentifier("NewCategory") as UIViewController
var nav = UINavigationController(rootViewController: popoverContent)
nav.modalPresentationStyle = UIModalPresentationStyle.Popover
var popover = nav.popoverPresentationController as UIPopoverPresentationController
popover.delegate = self
popover.popoverContentSize = CGSizeMake(1000, 300)
popover.sourceView = self.view
popover.sourceRect = CGRectMake(100,100,0,0)
self.presentViewController(nav, animated: true, …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用UIDocumentInteractionController预览文档.该文档是我的应用程序从网上下载的.xls文件.我一直收到这个错误:
'UIDocumentInteractionController: invalid scheme (null). Only the file scheme is supported.'
Run Code Online (Sandbox Code Playgroud)
我用下一个代码:
- (void) webServiceController:(WebServiceController *)webServiceController returnedArray:(NSMutableArray *)array {
if ([webServiceController.webRequest isEqualToString: @"generateExcelFileForEmployee"]) {
// start previewing the document at the current section index
NSString *link = [[NSString stringWithString:array[0]] stringByReplacingOccurrencesOfString:@"AdminFunctions.php" withString:@"AdminFunctions.xls"];
link = [[[link stringByReplacingOccurrencesOfString:@"\\" withString:@""]stringByReplacingOccurrencesOfString:@"/public/sites/" withString:@"http://"]stringByReplacingOccurrencesOfString:@"\"\\\"" withString:@""];
NSLog(@"%@", link);
NSData *urlData = [NSData dataWithContentsOfURL:[NSURL URLWithString:link]];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"AdminFunctions.xls"];
BOOL isWriteSuccess = [urlData writeToFile:filePath atomically:YES];
NSLog(@"%@", …
Run Code Online (Sandbox Code Playgroud) 我正在建立一个电子商务网站.所有产品都以不同的div显示.我有一个问题:在每个产品的Div中,我想显示产品描述的一部分.当产品描述比div长时,它只是在div的边缘显示描述.我试图将问题放在一张图片中:
现在,正如您在图片中看到的,我想解决三个问题:
现在我在其他电子商务网站上看到了很多,但在找了几个小时后,我还没有找到关于如何做到这一点的清晰描述.
这是生成所有产品卡的代码:
for($i = 0; $i<$numberOfItems; $i++) {
//echo $output_array[$i]["itemName"];
echo '<a href="/itemDetails.php?itemCode=';echo $output_array[$i]["itemCode"]; echo '&itemName='; echo $output_array[$i]["itemName"];echo'">
<div id="item" style="background-color: transparent; width:243px;height:auto;float:left; margin-left:20px; margin-top:20px; max-width:800px; display:inline-block;">
<div id="itemPicture" class="itemImage"; >
<div id="price" class="pricetag">
<div id="priceText" class="priceText";>';
echo "€".$output_array[$i]["itemPrice"];
echo '</div></div>';
$imageSource = "http://www.imagine-app.nl/ProductImages/".$output_array[$i]["firstImage"].".jpg";
echo '<img src="';echo $imageSource; echo'" style="max-width:100%; border:0px;">
</div>
<div id="itemName" class="itemName"">';
echo $output_array[$i]["itemName"];
echo '</div>'; ?>
<div id="itemDescription" class="itemDescription" style="height:">
<? echo $output_array[$i]["itemDescription"];
echo '</div>';
?>
<?php
echo '<div id="itemComment" class="itemComment""> …
Run Code Online (Sandbox Code Playgroud) 我正在构建一个必须只能用于iOS应用程序的Web服务.在未来,我想扩展到移动网站,使我的服务也可用于其他移动操作系统.
现在,我通过API完成所有工作.我的用户可以注册,搜索公司,从这些公司订购产品并跟踪他们的订单.它尚未活跃,但它正在运作..
我面临一个主要问题:如何确保这一点?
在过去的几天里,我已停止编码,我一直忙于搜索网络,StackOverflow和信息安全,以了解如何执行此操作.我发现亚马逊获取API的方式对我来说是最好的解决方案.亚马逊确保其服务的方式在这里解释.我已经为我的服务稍微调整了一下:
这种保护服务的方式对我来说很有意义,我可以编写大部分代码.但我有一个主要问题,我找不到任何解决方案:
有谁知道如何解决这个问题?任何帮助将非常感谢!!
我正在使用CloudKit构建iOS应用程序.
它应该允许用户Products
在云中添加,编辑和删除.用户可以在文件夹中组织这些内容.这些文件夹只是cloudkit中的其他记录类型.用户可以使用的文件夹级别没有限制,因为任何文件夹都可以只保存CKReference
到其父文件夹.我的应用程序中的所有CloudKit通信都在专用的CloudKitController类中进行
这一切都有效,但一段时间后停止工作没有明确的理由.
当我测试我的应用程序时,我甚至不会使用多级别的文件夹.但是,使用它一段时间(最多一周)后,所有已删除的记录似乎都会重新出现在CloudKit上.关于这个的几点说明:
它已经有一段时间了,我已经检查过我的代码,Apple Library和Google多次,但我无法弄清楚导致这个问题的原因.
问题: 有人知道如何克服这个问题吗?就像我说的那样,我已经遇到了几个星期,重置我的CloudKit仪表板只能"治愈"它长达一个星期,然后它再次弹出.我也非常乐意发布任何代码,如果这有助于你回答我的问题.我最初没有发布任何代码,因为我不知道代码可能会导致什么.
任何答案都将受到高度赞赏
对于我正在从事的项目,我需要创建一个组件,用户可以在其中向处于状态的数组添加条目,并SectionList
显示这些条目。另外,输入后,我需要SectionList向下滚动到最新条目。请查看此小吃作为示例
列表本身会显示所有条目并在添加新条目后进行更新,但是一旦列表包含的内容超出了屏幕显示的范围,它只能向下滚动到倒数第二个,我确实需要滚动到最后一个。
我尝试了许多事情,包括等待setState,定义contentContainerStyle,将整个事情转换为VirtualizedList
and ScrollView
,这是我能想到的,但是我根本无法让它滚动到最后一个条目。
问题:如何使我的SectionList滚动到当前超出SectionList组件范围的最后一项?
UPDATE
我知道此问题是由于SectionList
调用scrollToLocation时尚未包含该项目引起的。解决方案的关键似乎是等待列表的重新呈现
UPDATE 2 SetState的回调也无法解决此问题。但是,此注释中的解决方案有效。它的问题在于它仅适用于.js文件,而我在整个项目中都使用.tsx文件。我该如何克服呢?
我正在构建一个严重依赖CloudKit进行数据同步的应用程序.每次应用程序启动时,它都会捕获使用a在服务器上进行的所有更改CKFetchNotificationChangesOperation
.这会成功返回已创建和/或修改的所有对象,但我现在处于这个阶段,我还希望我的应用程序根据这些消息删除记录.
在我的应用程序中,我存储在CoreData中的每个对象也携带该对象的在线表示的recordID.这样我就可以轻松获取需要修改的对象.
删除对象时这似乎很难,因为CloudKit只返回这些对象的recordID,并且不提供我可以用来知道我在CoreData数据库中查找的对象的recordType.
题
在具有多种记录类型的情况下,如何正确处理CloudKit"已删除"通知?
我正在为我的Swift应用程序构建通用API.我CoreData
用于本地存储和CloudKit
云同步.
为了能够在泛型函数中使用我的数据对象,我将它们组织如下(简要摘要):
CoreData
数据库的对象是NSManagedObject
符合所调用协议的实例ManagedObjectProtocol
,可以转换为DataObject
实例NSManagedObject
需要进行云同步的s符合一个CloudObject
允许从记录中填充对象的协议,反之亦然DataObject
允许转换为NSManagedObject
实例的协议特定类的对象.我希望这段代码看起来像这样:
for record in records {
let context = self.persistentContainer.newBackgroundContext()
//classForEntityName is a function in a custom extension that returns an NSManagedObject for the entityName provided.
//I assume here that recordType == entityName
if let managed = self.persistentContainer.classForEntityName(record!.recordType) {
if let cloud = managed as? CloudObject {
cloud.populateManagedObject(from: record!, in: context)
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这给了我几个错误:
Protocol …
Run Code Online (Sandbox Code Playgroud) 我开发了一个具有很好的下载数据的应用程序,但是当我在iTunes Connect上查看App Statistics时,我可以看到它确实崩溃了几次.我想通过使用像Fabric Crashlytics这样的服务来解决这个问题.
我想知道的是,我找不到很多信息,是否需要请求我的用户这样做?在一天结束时,该服务会将数据从其设备发送到服务器.我可以在后台执行此操作,还是需要获得许可?
我正在构建一个非常依赖CloudKit作为数据源的iOS应用程序.
安装应用程序并首次运行后,我需要下载大量驻留在CloudKit Container公共数据库中的数据.我这样做了CKFetchNotificationChangesOperation
每次启动应用程序时,此操作都会运行,以检查自上次收到的服务器更改令牌以来的数据更改.显然,在第一次启动应用程序时,我必须提供的更改令牌为nil,这将导致CKFetchNotificationChangesOperation
加载数据库上发生的所有更改.
然后返回的数据将存储在本地,因为我希望拥有与我的用户相关的所有数据的本地缓存.我将这些数据存储在核心数据库中.由于第一次启动时应用程序需要的数据集可能很大,我真的需要CKFetchNotificationChangesOperation来获取服务器上的所有更改.
然而,这似乎不可靠.使用我在数据库中输入的一些数据测试此服务时,我没有收到我应该收到的所有数据.当我在公共数据库中输入更多数据时,CKFetchNotificationChangesOperation
似乎完全忽略了我之前输入的记录.有时候,有些人会漏掉但是非常不可靠.
显然,我已经验证我的订阅是合法的(之前加载了相同的记录),并且我检查了moreComing
参数是否CKFetchNotificationChangesOperation
为真(总是如此false
)
题
在初始加载时,如何在公共数据库中获取所有数据?我认为CKFetchNotificationChangesOperation
应该做的工作,但似乎不可靠.是否有类似"范围"的东西我可以在此操作上配置以强制它加载我的所有数据?或者CKFetchNotificationChangesOperation
不适合初始加载,我应该通过自定义操作加载我需要的所有数据吗?
ios ×7
swift ×4
cloudkit ×3
core-data ×2
icloud ×2
api ×1
crashlytics ×1
css ×1
debugging ×1
excel ×1
generics ×1
html ×1
ios8 ×1
javascript ×1
key ×1
nsdata ×1
preview ×1
protocols ×1
react-native ×1
responsive ×1
security ×1
uipopover ×1
web-services ×1