分类 Xamarin.iOS 中的文章

在Xamarin.iOS中实现TextLayer的垂直对齐

代码如下: public class SHLCTextLayer : CATextLayer { public SHLCTextLayer(IntPtr handle) : base(handle) { } public SHLCTextLayer() : base() { } public SHLCTextLayer(NSCoder coder) : base(coder) { } public SHLCTextLayer(NSObjectFlag t) : base(t) { } public override void DrawInContext(CGContext ctx) { try { var height = this.Bounds.Size.Height; var fontSize = this.FontSize; var yDiff = (height - fontSize) / 2 - fontSize / 10; ctx.SaveState(); ctx.TranslateCTM((nfloat)0.0f, yDiff); base.DrawInContext(ctx); ctx.RestoreState(); } catch (Exception e) { ErrorReporter.Report(e); } } }……

阅读全文

iOS12下跳转出现NSInternalInconsistencyException的解决方法

问题现象 在洛书1.7.5版本中出现这样一个bug:从键盘跳转输入法主程序失败;导入文件时跳转主程序也失败; 调试应用时出现如下错误: Objective-C exception thrown. Name: NSInternalInconsistencyException Reason: Application has LSSupportsOpeningDocumentsInPlace key, but doesn't implement application:openURL:options: on delegate <AppDelegate: 0x283eda9c0> 原因分析 跳转时application:openURL:options:不存在导致出错;此前我重载了applicat……

阅读全文

如何用instrument对Xamarin.iOS进行代码级调优

此前我写了一篇如何使用Instrument对Xamarin.iOS应用进行调优,但里面仅仅介绍了如何加载Xamarin.iOS程序,在实际的调试中还是不够用的,有时候为了有的放矢,我们需要深入到代码一级才知道程序出现问题的根源,今天我给大家介绍一下如何用instrument对Xa……

阅读全文

Xamarin.iOS出现Code signing failed问题如何处理

我最近遇到了一个奇怪的问题,项目可以编译,可以运行,但是就是在生成Archvie之后要对其进行sign and distribute时会报如下错误: 并且除此之外,没有其它信息; 我试过所有办法,比如重新生成证书、重建项目、重启IDE和电脑、甚至是移除项目中可疑的子项目的代码等等,但是都不管……

阅读全文

Xamarin.iOS报Reason: no suitable image found.如何处理

在一次项目调试中我遇到了如下问题: 错误信息为: Reason: no suitable image found. Did find: /Users/huangboru/Library/Developer/CoreSimulator/Devices/AD26D1B5-DEE9-4E27-949C-A442CBAB5A8B/data/Containers/Bundle/Application/04F80EC9-7D94-4150-9ADB-1E1BDA867E2D/ThreeDiretion.iOS.app/PlugIns/ThreeDiretionKeyBoard.appex/../../Frameworks/Mono.framework/Mono: required code signature missing for '/Users/huangboru/Library/Developer/CoreSimulator/Devices/AD26D1B5-DEE9-4E27-949C-A442CBAB5A8B/data/Containers/Bundle/Application/04F80EC9-7D94-4150-9ADB-1E1BDA867E2D/ThreeDiretion.iOS.app/PlugIns/ThreeDiretionKeyBoard.appex/../../Frameworks/Mono.framework/Mono' 解决办法: 打开项目的option->iOS Build ,在 “Additional mtouch arguments"中加入--mono:static 即可;……

阅读全文

如何将第三方库封装成Xamarin.iOS链接库

如果你使用的是原生的开发技术,那么你肯定是不需要阅读本文的。但是如果在你的技术栈中,Xamarin.iOS有其一席之地的话,花点时间看一看或者收藏一下本文以备日后查阅,你一定不会吃亏。因为无论是Xamarin官方所提供的文档,抑或是国内所能查找的资料(事实上,几乎找不到),要么已……

阅读全文

在Xamarin.iOS下对UIImage进行压缩的方法

最近发现某些皮肤在iOS版岁寒输入法下会出现莫名其妙崩溃的情况,经分析研究,发现是由于皮肤中的素材太大,导致加载时程序内存占用暴涨而崩溃(iOS下的输入法运行内存限制大约为40mb,一不小心就会爆)。解决方案是在加载图片时对图片做压缩处理。 虽然Xamarin.iOS基本上是对原生……

阅读全文

使用C#实现byte[]转UIImage、Image

不啰嗦,直接上代码 byte[]转UIImage 在Xamarin.iOS项目中用。 public UIImage bytesToUIImage(byte[] data){ if (data == null) return null; GCHandle hObject = GCHandle.Alloc(data, GCHandleType.Pinned); IntPtr pObject = hObject.AddrOfPinnedObject(); NSData nsdata = NSData.FromBytes(pObject, (System.nuint)data.Length); UIImage image = UIImage.LoadFromData(nsdata); if (hObject.IsAllocated) hObject.Free(); return image; } catch (Exception e) { } return null; } byte[]转Image 在Xamarin.Form中用。 public Image bytesToImage(byte[] data){ var image = new Image(); image.Source = ImageSource.FromStream(() => new MemoryStream(data)); return image; } Stream转byte[……

阅读全文

在Xamarin.Form中实现iOS文件导出功能

近日在开发岁寒输入法的主题功能,为了实现导出主题包功能,颇费一番周折,最终代码也不复杂,我在本文中简单作个介绍。 我这里仍然是要使用DependencyService. 声明接口 namespace SuiHanLib { public interface IOutputTheme { void output(string path); } } 在iOS项目中实现 using System; using SuiHanLib; using Foundation; using UIKit; [assembly: Xamarin.Forms.Dependency(typeof(SuiHanIME.iOS.OutputTheme_iOS))] namespace SuiHanIME.iOS { public class OutputTheme_iOS : IOutputTheme { public OutputTheme_iOS() { } public void output(string path) { var nSUrl = NSUrl.FromFilename(path);……

阅读全文

Xamarin Studio中的iPhone真机调试

在实际开发过程中,有时光是使用虚拟机难以满足需要。本文向大家介绍一下使用Xamarin Studio进行真机调试的方法。 一、需要准备的东西: 一台安装有Xcode和Xamarin Studio的Mac电脑; 一部iPhone和一个Apple ID(现在不需要付费就可以在真机调试iOS程序,……

阅读全文