jjzjj

.Net UserControl XCode 等价物

coder 2024-01-11 原文

我习惯于在 Visual Studio 中创建“用户控件”...我想知道在 XCode 中是否有办法做到这一点...

我一直在四处寻找,有些人告诉我要构建一个插件......这听起来太复杂了,无法构建一个简单的可重复使用的“文本框 -> 按钮 -> 标签”......在 VS 中我可以创建 -> 用户控件,对控件进行编程和拖放,就好像它是一个简单的按钮一样......它真的就这么简单......

有什么想法吗?

最佳答案

XIB(界面生成器 View )或继承自 UIView 的类都相当于用户控件。它们是聚合 subview 的方法(思考 View 和 subview - 而不是控件)。

在界面生成器中的 XIB 中,您可以添加其他控件(从库中拖动)并放置在 View 中。 File,New File,iOS下,User Interface,View。这个 SO 问题涵盖了:

How do I associate a nib (.xib) file with a UIView?

如果您想以编程方式执行此操作,请创建一个新的继承自 UIView 的 objective-c 类。在 viewDidLoad 中,您可以通过编程方式创建其他控件并放置它们。

这是一个编程教程:

http://www.raywenderlich.com/1768/how-to-make-a-custom-uiview-a-5-star-rating-view

最后,一种常见的“聚合控件”类型是用于表格的 UITableViewCell。这是有关以编程方式和使用 IB 创建自定义 UITableView 单元格的教程。

http://www.e-string.com/content/custom-uitableviewcells-interface-builder

Apple 的这些指南很适合阅读:

http://developer.apple.com/library/ios/#DOCUMENTATION/WindowsViews/Conceptual/ViewPG_iPhoneOS/Introduction/Introduction.html

http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/BasicViewControllers/BasicViewControllers.html

编辑:

我刚试过这个...

如上所述,将 XIB 添加到您的项目中。向其中添加一些您希望聚合为可重用 View 的控件。

现在 - 在您的其他 View / View Controller 之一中拖出一个 UIView 以声明将使用聚合控件的空间。

创建一个 IBOutlet UIView *_customView 并在您的 View 中将该 socket 绑定(bind)到您刚刚拖出的 UIview。此时这只是一个容器,您有一个 iVar/IBOutlet,因此您可以向其中添加内容。

到目前为止,我们已经创建了一个 UIView 布局,它将包含我们的聚合控件。

使用 UINib 类来消除您的 Xib“用户控件”。这是我放在 viewDidLoad 中的代码:

UINib *nib = [UINib nibWithNibName:@"TestView" bundle:nil];
[_customView addSubview:[[nib instantiateWithOwner:self options:nil] objectAtIndex:0]];

不完全是拖出,而是意识到 UINib 缓存了布局,因此您可以快速剔除新实例并将其添加到您的表单中的任何地方,同时利用 UIview 的 IB 布局控制。

关于.Net UserControl XCode 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7699384/

有关.Net UserControl XCode 等价物的更多相关文章

  1. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  2. java - Java 的 StringReader 的 Ruby 等价物是什么? - 2

    在Java中,可以像这样从一个字符串创建一个IO流:Readerr=newStringReader("mytext");我希望能够在Ruby中做同样的事情,这样我就可以获取一个字符串并将其视为一个IO流。 最佳答案 r=StringIO.new("mytext")和here'sthedocumentation. 关于java-Java的StringReader的Ruby等价物是什么?,我们在StackOverflow上找到一个类似的问题: https://st

  3. python - 什么是 Python 输出的 Ruby 等价物 [ :-1]? - 2

    在Python中,如果我想得到字符串的前n个字符减去最后一个字符,我会这样做:output='stackoverflow'printoutput[:-1]什么是Ruby等价物? 最佳答案 我不想太挑剔,但如果你想更像Python的方法,而不是做"StackOverflow"[0..-2]你可以做"StackOverflow"[0...-1]相同的结果。在Ruby中,带3个点的范围不包括正确的参数,而带两个点的范围包括它。因此,在字符串切片的情况下,三个点更接近Python的语法。 关于p

  4. ruby-on-rails - 为什么 do/end 和 {} 不总是等价的? - 2

    这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:RubyblockandunparenthesizedargumentsWhatisthedifferenceorvalueoftheseblockcodingstylesinRuby?我一直认为以下只是同一件事的两种表达方式:[1,2,3].collect{|i|i*2}[1,2,3].collectdo|i|i*2end但是我在我的一个ERB模板中发现了一些奇怪的行为,这两种语法似乎在做两件不同的事情。这段代码效果很好:m))}}%>但是当我将其重写为:m))endend%>...我最终得到了我的@men

  5. Java 有 FindBugs。 Ruby 的等价物是什么? - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:AutomaticcodequalitytoolforRuby?Java有FindBugs™。Ruby的等价物是什么?

  6. ruby - Ruby 中的 charCodeAt() 等价物 - 2

    我想知道是否存在与JavaScript的charCodeAt()方法等效的Ruby。charCodeAt()方法返回字符串中指定索引处字符的Unicode值。以下示例返回字符串中最后一个字符的Unicode值:str.charCodeAt("HELLOWORLD".length-1)#=>68在Ruby中有对应的吗? 最佳答案 您可以使用String#[]和String#ord方法:'HELLOWORLD'[-1].ord#=>68它还处理Unicode字符:'aā'[1].ord#=>257

  7. ruby - Tcl 是否具有 PE​​RL 和 Ruby backtic 的等价物 - 2

    在Ruby/PERL中,我可以很容易地将系统命令的控制台输出输入到一个文件中。例如:$k=`ls`将ls的输出输入到PERL(和Ruby)中的变量$k。如何在Tcl中做这样的事情?谢谢 最佳答案 使用exec命令得到相同的。setoutput[execls]puts$output手册页:exec 关于ruby-Tcl是否具有PE​​RL和Rubybacktic的等价物,我们在StackOverflow上找到一个类似的问题: https://stackoverf

  8. ruby - 是否有 Log4J for Ruby 的等价物,Log4Ruby? - 2

    找了一圈也没找到。是否有Ruby的Log4X等价物?如果不是,那么处理所有调试语句的最佳方法是什么。我是Ruby的新手。谢谢! 最佳答案 Ruby带有一个内置的日志库,但是有log4r.内置库的一个简短示例:#!/usr/bin/envrubyrequire'logger'log=Logger.new('mylog.txt')log.debug"Hellolog" 关于ruby-是否有Log4JforRuby的等价物,Log4Ruby?,我们在StackOverflow上找到一个类似的问

  9. objective-c - Ruby ||= Objective-C 中的等价物 - 2

    我最近一直在学习ruby​​,并且基本上爱上了||=特性,因为它可以使在ObjectiveC中编写惰性getter变得更加容易。目前我写的getter如下:-(NSArray*)myArray{if(!_myArray){_myArray=[NSArrayarray];}return_myArray}除非我遗漏了||=的某些内容,否则我将能够使用Ruby编写以前的代码:-(NSArray*)myArray{return_myArray||=[NSArrayarray];}那显然更干净了。Objective-C语言/运行时中是否有任何东西可以让您做到这一点?此外,以下是getter的单行

  10. ruby - 比较 Ruby 中的对象等价性 - 2

    我在这里做一个Ruby教程:http://rubymonk.com/learning/books/4-ruby-primer-ascent/chapters/45-more-classes/lessons/105-equality_of_objects它说当我重载==运算符时,我也应该重载eql?方法和hash方法,因为它们“更快”。但是,如果我用基本相同的方法重载所有三个,一个比另一个快多少? 最佳答案 在大多数情况下,==和eql?具有相同的结果。在某些情况下,eql?比==更严格:42.0==42#=>true42.0.eql

随机推荐