iOS使用xib文件创建一个组件为子控件,进行复用

有些情况下,我们发现有一些界面上的控件是可以复用的。

如果每次都拷贝这些控件过去,就是比较麻烦。所以,就用一个xib文件,创建一个view,把要复用的控件,放在里面组成一个view,然后在其他的ViewController里面引用就行了。

这样会方便很多。

第一步:创建一个SingleViewApplication,命名为“xib作为子控件复用”,在项目里New File,选择Cocoa Touch Class,命名为"AAView",点击Next,如图1所示:



第二步:创建一个View,在项目里面New File,选择View,点击Next,如图2所示。命名为”AAView“,点击Create,如图3所示:



第三步:选中AAView.xib,点击View,更改Custom Class为“AAView”(即刚才所创建的AAView.h和AAView.m文件),如图4所示。如果要修改View的大小,可以设置属性Size为 “Freeform”。


第四步: 在View里面添加4个Label,修改Text,如图5所示。为"小王"和"21"两个Label添加Outlets,按住Control拖到AAView.h文件,分别命名,如图6所示:



第五步:现在就是如何把这个View作为子控件加载到其他界面了,打开ViewController.m文件,把AAView.h” import进来,然后在ViewDidLoad里面写入以下代码:

1
2
3
4
5
6
7
AAView *aaView = [[[NSBundle mainBundle] loadNibNamed:@ "AAView"  owner:self options:nil] lastObject];
 
     aaView.lbName.text = @ "小明" ;
 
     aaView.lbAge.text = @ "25" ;
 
     [self.view addSubview:aaView];

运行程序,结果如图7所示:


至此,可以看见姓名和年龄都改变了,成功完成把xib文件作为一个子控件使用。如果你觉得位置不满意,可以更改创建的View的Frame属性,改变大小和位置。

有时候你有很多复杂的控件组成一个复杂的组件,然后进行复用,这就是一个很好的办法。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然可以!下面是一个使用Swift语言编写的放置一张图片的水平NSCollectionView的示例代码: 首先,确保你已经导入了Cocoa框架: ```swift import Cocoa ``` 然后,创建一个自定义的NSCollectionViewItem类来展示图片: ```swift class ImageCollectionViewItem: NSCollectionViewItem { override func loadView() { super.loadView() view = NSImageView() } override var representedObject: Any? { didSet { guard let image = representedObject as? NSImage else { return } (view as? NSImageView)?.image = image } } } ``` 接下来,在你的视图控制器中,设置水平滚动的NSCollectionView: ```swift class ViewController: NSViewController, NSCollectionViewDataSource { @IBOutlet weak var collectionView: NSCollectionView! let images: [NSImage] = [NSImage(named: "image1")!, NSImage(named: "image2")!, NSImage(named: "image3")!] override func viewDidLoad() { super.viewDidLoad() let flowLayout = NSCollectionViewFlowLayout() flowLayout.scrollDirection = .horizontal collectionView.collectionViewLayout = flowLayout collectionView.dataSource = self collectionView.register(ImageCollectionViewItem.self, forItemWithIdentifier: NSUserInterfaceItemIdentifier("ImageCollectionViewItem")) } func collectionView(_ collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int { return images.count } func collectionView(_ collectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem { let item = collectionView.makeItem(withIdentifier: NSUserInterfaceItemIdentifier("ImageCollectionViewItem"), for: indexPath) item.representedObject = images[indexPath.item] return item } } ``` 在这个示例中,我们创建了一个NSCollectionView,并使用NSCollectionViewFlowLayout来设置水平滚动。我们还实现了NSCollectionViewDataSource协议中的两个方法,用于指定项目数量和返回自定义的NSCollectionViewItem。 请确保在Storyboard或者XIB文件中将NSCollectionView连接到你的视图控制器,并设置其代理和数据源。 这样,你就可以在NSCollectionView中放置一张图片了。记得替换示例代码中的图片名称,以适应你的实际项目。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值