我正在使用Xamarin.Android,我想将.txt文件保存到SD卡.这是我正在使用的代码:
private void SavetoSd()
{
var sdCardPath = Android.OS.Environment.ExternalStorageDirectory.Path;
var filePath = System.IO.Path.Combine(sdCardPath, "iootext.txt");
if (!System.IO.File.Exists(filePath))
{
using(System.IO.StreamWriter write = new System.IO.StreamWriter(filePath,true))
{
write.Write(etSipServer.ToString());
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
System.UnauthorizedAccessException:拒绝访问路径"/mnt/sdcard/iootext.txt".
我在清单中添加了以下内容:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)
我该如何修复错误?
我有一个主题细节iPad界面设置与故事板,以在细节视图控制器上提供替换segue.这可以很好地替换细节控制器,但在某些情况下缺少显示主控制器的条形按钮.
如果我在纵向中执行segue,则会丢失条形按钮,因为willHideViewController:从不调用委托方法.prepareForSegue:从主服务器调用时,我将委托设置为新的详细信息控制器.
当按钮丢失时,我可以将iPad旋转到横向然后再回到纵向,然后会出现按钮.
在 prepareForSegue:
UINavigationController *nav = [segue destinationViewController];
UIViewController *destinationViewController = nav.topViewController;
if ([destinationViewController conformsToProtocol:@protocol(UISplitViewControllerDelegate)]) {
self.splitViewController.delegate = destinationViewController;
}
else {
self.splitViewController.delegate = nil;
}
Run Code Online (Sandbox Code Playgroud)
在细节控制器中:
#pragma mark - Split view
- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController
{
barButtonItem.title = NSLocalizedString(@"MasterButton", @"Master");
[self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES];
self.masterPopoverController = popoverController;
}
- (void)splitViewController:(UISplitViewController *)splitController willShowViewController:(UIViewController *)viewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
{
// Called when the view is shown again in the split view, invalidating …Run Code Online (Sandbox Code Playgroud) 我UITableViewController是符合新的UISearchControllerDelegate ,也是UISearchResultsUpdating.
这是我搜索栏的设置代码:
override func viewDidLoad() {
var searchController = UISearchController(searchResultsController: self)
searchController.searchResultsUpdater = self
self.tableView.tableHeaderView = searchController.searchBar
self.definesPresentationContext = true
}
Run Code Online (Sandbox Code Playgroud)
但是,在模拟器中运行它时,表头中没有搜索栏,即使它已在代码中指定.我也试过这个代码viewWillAppear,但是再次没有显示搜索栏.
我有以下代码(Swift中针对iOS的SceneKit):
let scnView = self.view as SCNView
let scene = SCNScene()
let levelScene = SCNScene(named: "level")
scene.rootNode.addChildNode(levelScene.rootNode)
scnView.scene = scene
scnView.backgroundColor = UIColor.grayColor()
scnView.allowsCameraControl = true
scnView.showsStatistics = true
Run Code Online (Sandbox Code Playgroud)
问题是,在scene.rootNode.addChildNode(level.rootNode)控制台中出现以下错误:
[SCNKit ERROR] removing the root node of a scene from its scene is not allowed
我不知道为什么会出现这个错误,但我正在尝试加载我的level.dae文件并将其添加到场景中.从我在模拟器(和设备)中看到的,它加载很好.
我该怎么做才能防止出现错误信息?
CAShapeLayer通过将其笔触颜色设置为红色,我创建了几个点.然后我用一种模式填充了颜色UIImage.我想CAShapeLayer用它的填充图案旋转它UIRotationGestureRecognizer.
我使用过CATransform3DRotate,但它无法正常工作.
CATransform3D transform = CATransform3DIdentity;
transform = CATransform3DRotate(transform, recognizer.rotation, 0.0, 0.0, 1.0);
shapeLayer.transform = transform;
Run Code Online (Sandbox Code Playgroud)
提前致谢
我有两个UIViews,我想以相同的速度和同时移动.
[UIView animateWithDuration:0.25 animations:^ {
myView1.frame = CGRectMake(0.0, 0.0, 100.0, myView1.frame.size.height - 50.0);
myView2.frame = CGRectMake(0.0, 0.0, 100.0, myView1.frame.size.height - 100.0);
}];
Run Code Online (Sandbox Code Playgroud)
但是,执行上述操作意味着myView2以两倍于此速度的速度进行动画制作myView1.
如何让两个视图以相同但速度相同的方式进行动画处理(这样一个视图首先完成,然后是另一个,但是它们会同时开始制作动画)?
假设我有一个立方体节点,我在场景中移动它,我怎么能有一个跟在盒子后面的相机?
我知道有SCNLookAtConstraint,但我追求的是一个追逐相机.一个实际上改变它的位置,以便它在节点后面附加.
我没有找到任何示例代码来显示实现此方法,有没有人有任何想法?
我有一些NSDictionarys完整的数据,我有一个利用数据的方法.使用哪个NSDictionary取决于用户的一些输入,所以我想知道如何创建一个指向NSDictionary数据的指针.
例如
用户选择"option foo",因此该方法需要使用"foo dictionary".不是将"foo字典"复制到临时字典中,而是如何引用它,以便"tempdictionary"具有"foo dictionary"的内容.
这可能没有意义,但提前谢谢.
ios ×6
objective-c ×3
scenekit ×2
swift ×2
android ×1
c# ×1
calayer ×1
cashapelayer ×1
cocoa ×1
ipad ×1
iphone ×1
macos ×1
uitableview ×1
xamarin ×1
xcode ×1