iOS新手,来自Java/Swing世界,我习惯于以编程方式创建UI,让组件自行调整大小并使用各种聪明的布局管理器来安排事情.
似乎很清楚,iOS方式是大量使用Interface Builder,具有大量固定的大小和定位.我不确定IB会不会自然而然地出现,但我认为固定布局是有意义的,因为你正在使用有限的空间和固定的窗口大小.
但是,我似乎仍然在编写很多样板文件,并且违反了DRY,等等.
有人能指出我在推出iOS UI,特别是程序化UI方面的一个很好的入门书吗?
我正在尝试UILabel在我的Xamarin.iOS应用程序中创建一个填充.本机Objective-C应用程序中最流行的解决方案是重写drawTextInRect:
- (void)drawTextInRect:(CGRect)rect {
UIEdgeInsets insets = {0, 5, 0, 5};
return [super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)];
}
Run Code Online (Sandbox Code Playgroud)
这看起来很简单,我无法弄清楚如何将其转换为C#.这是我最好的尝试:
internal class PaddedLabel : UILabel
{
public UIEdgeInsets Insets { get; set; }
public override void DrawText(RectangleF rect)
{
var padded = new RectangleF(rect.X + Insets.Left, rect.Y, rext.Width + Insets.Left + Insets.Right, rect.Height);
base.DrawText(padded);
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎会移动标签的文本,但它不会调整标签的大小.
我认为主要问题是我找不到相应的Xamarin UIEdgeInsetsInsetRect.
有什么建议?
我正在将现有的多目标Silverlight/.NET项目转换为可移植类库项目,以减少支持多个Microsoft平台所需的项目数.
我在一个使用System.Security.Cryptography命名空间的类中有错误
命名空间'System.Security'中不存在类型或命名空间名称'Cryptography'(您是否缺少程序集引用?)
这个命名空间在Silverlight中可用,我想知道为什么Portable Class Library不支持它?
一个原因可能是此行为是设计原因:任何与加密相关的代码都不应出现在客户端API中.
我有一个由MonoTouch.Dialog创建的Dialog.无线电组中有一份医生名单:
Section secDr = new Section ("Dr. Details") {
new RootElement ("Name", rdoDrNames){
secDrNames
}
Run Code Online (Sandbox Code Playgroud)
我希望Element在选择Doctor之后更新代码.通知RadioElement已被选中的最佳方式是什么?
我正在玩一个应用程序将文件备份到"云":)我想在存储之前加密文件.这部分我已经介绍过,但是由于这个应用程序将监视文件夹以进行更改并上传更改的文件,我需要存储用于加密文件的密钥.想法是用户提供密码并生成密钥.
目前我正在使用.NET Framework进行加密.我正在使用RijndaelManaged类来加密/解密,而使用PasswordDeriveBytes类来获取密钥.
但是,我应该如何保留用于加密文件的密钥?我也希望程序从Windows开始,而不需要让用户再次输入密码.
尝试编译VelocityDB for android时,我收到了附加的错误消息.由于VelocityDB支持表示它确实需要数据注释.
引用的'System.ComponentModel.DataAnnotations.dll'是否适用于Android和iOS?
谢谢Jozsef
错误消息:"错误1加载程序集时出现异常:System.IO.FileNotFoundException:无法加载程序集'System.ComponentModel.DataAnnotations,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'.也许它不存在于Mono for Android profile?文件名:'System.ComponentModel.DataAnnotations.dll'at Monodroid.Tuner.MonoDroidResolver.Resolve(AssemblyNameReference reference,ReaderParameters parameters)at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(List`1 assemblies,AssemblyDefinition程序集)在Xamarin.Android.Tasks.ResolveAssemblies.Execute()"
Xamarin对我来说似乎是跨平台开发的不错选择.但是,有启动器和独立许可证.主要区别在于:
Xamarin Starter允许开发人员构建和发布简单的应用程序,其中包含不超过32k的编译用户代码(IL)
我想知道,IL是32K是一个非常严格的瓶颈吗?我可以从32K代码获得什么?
如果您已经尝试过Xamarin入门版,那么尺寸限制对您来说是个问题,您开发的应用程序类型是什么?
在NSString的 Apple文档中有一个stringByReplacingCharactersInRange方法,但是我在Monotouch中找不到这个方法.
Monotouch是否缺少此方法实现 - 本机API绑定?
我需要这个方法在shouldChangeCharactersInRange中实现一些自定义字符串处理逻辑
我正在使用针对5.0 SDK构建的应用程序来定位IOS 4.3和5.0,并且只有当应用程序在iOS5设备上运行时才想添加对iOS5中引入的Twitter功能的支持.在运行时可靠地测试这些OS功能的可用性而不会导致应用程序崩溃的推荐方法是什么?
我知道你在Objective-C中使用respondsToSelector来做到这一点,但它是如何在C#中完成的?
我正在尝试使用MonoGame为mac启动一个新项目.我已经安装了我认为必需的所有东西但是当我运行新项目时(单声道游戏徽标应该弹出)我在输出中得到这两行:
加载程序集:/Users/Kristin/Projects/Test/Test/bin/Debug/Test.app/Contents/MonoBundle/Test.exe加载程序集:/Users/Kristin/Projects/Test/Test/bin/Debug/Test.app /Contents/MonoBundle/MonoMac.dll [外部]
并且启动的新应用程序挂起而不会弹出窗口.我尝试按照此页面上的步骤操作:http://jamie.ly/wordpress/programming/software/setting-up-a-monogame-mac-application-with-xamarin-studio/
但似乎没有什么能解决我的问题.有任何想法吗?
xamarin.ios ×7
ios ×5
c# ×4
.net ×2
cryptography ×2
iphone ×2
xamarin ×2
aes ×1
c ×1
database ×1
encryption ×1
installation ×1
ios4 ×1
monodevelop ×1
monogame ×1
monomac ×1
nsstring ×1
radio-button ×1
rijndael ×1
silverlight ×1
uilabel ×1
versioning ×1
xamarin.mac ×1