谁说ios不可以自定义控件?(可用xib拖动的)

2024-05-03 16:58

本文主要是介绍谁说ios不可以自定义控件?(可用xib拖动的),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一个月前,作者接到任务要封装自定义可拖动的控件,当时花了1秒的时间浏览大脑做过的所有程序(包括网络上的Demo)没有发现有此类控件的封装啊?在Xcode的控件表里,确实有一个是“Custom Objects”,但是后来发现只有4.0以前版本的Xcode才能支持这个东西,它被apple抛弃了,这个是官方的解释:

http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_4_1.html

(见最后一段)。

但是两天前,作者发现在“Indentity Inspector”导航栏下,有一个很可疑的参数——“Custom Class”它的下面还有一个更可疑的参数“User Defined Runtime Attributes”见下图

既然Apple给出了“Custom Class”,那么就意味了我们可以用自己定制的类,我是我就实验了一下,结果,果断成功!下面就给大家介绍具体的步骤:

1、首先要建立一个类:MyImgView继承UIButton

[plain]  view plain copy
  1. #import <Foundation/Foundation.h>  
  2. @interface MyImgView : UIButton  
  3. //对外接口  
  4. @property NSNumber *cornerRadius;  
  5. @end  

MyImgView.m 内容:

[plain]  view plain copy
  1. #import "MyImgView.h"  
  2. #import <QuartzCore/CALayer.h>  
  3. @implementation MyImgView  
  4. @synthesize <span style="color:#ff0000;">cornerRadius</span>;  
  5. - (void)drawRect:(CGRect)rect  
  6. {  
  7.     // Drawing code  
  8.     [[self layer] setCornerRadius:[cornerRadius floatValue]];  
  9.     [[self layer] setMasksToBounds:YES];  
  10.     NSLog(@"111111");  
  11. }  
  12.   
  13. @end  
2、将一个button控件拖入xib,设置一张按钮图片,如下图:

3、设置此按钮的“Custom Class”和“User Defined Runtime Attributes”,如下图:

4、Run it!

本文适合懒人一族,如有纰漏,请多指正!

转自:http://blog.csdn.net/a8221379/article/details/9139487

这篇关于谁说ios不可以自定义控件?(可用xib拖动的)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/957209

相关文章

C#实现WinForm控件焦点的获取与失去

《C#实现WinForm控件焦点的获取与失去》在一个数据输入表单中,当用户从一个文本框切换到另一个文本框时,需要准确地判断焦点的转移,以便进行数据验证、提示信息显示等操作,本文将探讨Winform控件... 目录前言获取焦点改变TabIndex属性值调用Focus方法失去焦点总结最后前言在一个数据输入表单

centos7基于keepalived+nginx部署k8s1.26.0高可用集群

《centos7基于keepalived+nginx部署k8s1.26.0高可用集群》Kubernetes是一个开源的容器编排平台,用于自动化地部署、扩展和管理容器化应用程序,在生产环境中,为了确保集... 目录一、初始化(所有节点都执行)二、安装containerd(所有节点都执行)三、安装docker-

SpringBoot 自定义消息转换器使用详解

《SpringBoot自定义消息转换器使用详解》本文详细介绍了SpringBoot消息转换器的知识,并通过案例操作演示了如何进行自定义消息转换器的定制开发和使用,感兴趣的朋友一起看看吧... 目录一、前言二、SpringBoot 内容协商介绍2.1 什么是内容协商2.2 内容协商机制深入理解2.2.1 内容

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明: struct S3{double a;int b;char c;};int mian(){printf("%zd\n",s

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

【iOS】MVC模式

MVC模式 MVC模式MVC模式demo MVC模式 MVC模式全称为model(模型)view(视图)controller(控制器),他分为三个不同的层分别负责不同的职责。 View:该层用于存放视图,该层中我们可以对页面及控件进行布局。Model:模型一般都拥有很好的可复用性,在该层中,我们可以统一管理一些数据。Controlller:该层充当一个CPU的功能,即该应用程序

Oracle type (自定义类型的使用)

oracle - type   type定义: oracle中自定义数据类型 oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要特殊的格式, 如将name定义为(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就要我们自己定义一个数据类型 格式 :create or repla

Sentinel 高可用流量管理框架

Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。 Sentinel 具有以下特性: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应