首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

UIButton以编程方式创建但未显示在视图上(addSubview被调用)

关于UIButton以编程方式创建但未显示在视图上的问题,我们可以从以下几个方面进行讨论:

  1. 确保UIButton实例已经被正确创建并添加到视图上。可以使用以下代码创建UIButton实例并添加到视图上:
代码语言:swift
复制
let button = UIButton(type: .system)
button.frame = CGRect(x: 100, y: 100, width: 100, height: 50)
button.setTitle("Click Me", for: .normal)
button.addTarget(self, action: #selector(buttonClicked), for: .touchUpInside)
view.addSubview(button)
  1. 确保UIButton的frame或者约束已经正确设置。如果使用Auto Layout,需要确保UIButton的约束已经被正确添加:
代码语言:swift
复制
button.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
    button.centerXAnchor.constraint(equalTo: view.centerXAnchor),
    button.centerYAnchor.constraint(equalTo: view.centerYAnchor),
    button.widthAnchor.constraint(equalToConstant: 100),
    button.heightAnchor.constraint(equalToConstant: 50)
])
  1. 确保UIButton的显示逻辑已经被正确地添加到视图控制器的生命周期方法中,例如在viewDidLoad()或者viewWillAppear()方法中添加显示逻辑。
  2. 如果UIButton的显示与用户交互有关,确保UIButton的事件处理逻辑已经被正确实现,例如使用addTarget()方法添加事件处理器:
代码语言:swift
复制
@objc func buttonClicked(sender: UIButton) {
    // 处理按钮点击事件
}

总之,要解决UIButton以编程方式创建但未显示在视图上的问题,需要确保UIButton实例已经被正确创建并添加到视图上,同时确保UIButton的显示逻辑和事件处理逻辑已经被正确实现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

设计模式之创建型模式

模式是一项管理复杂度的技术,几乎所有模式都遵循两个原则: 针对接口编程,而不是实现。 多用组合,少用继承。 很多模式看上去很类似,这是因为实现各种模式的方式一般就是继承和组合。...创建型模式简介 创建型模式将实例化对象的部分从系统中独立出来,它们将系统具体使用哪些类的信息封装起来,并隐藏了这些类是如何创建和组合的,对外只提供一个通用接口。...抽象方法定义一个用于创建对象的接口,子类重写创建方法,创建的产品会有一个抽象接口,所以使用者并不知道具体得到的是什么产品。...一个界面在打开应用的时候显示,Label 和 Button 会显示“Hello……”,另一个应用关闭前显示,Label 和 Button 会显示“Goodbye……”。...Factory Method(工厂方法) 现在我们给 PageView 加上用来创建 Label 和 Button 的工厂方法,并在构造器中调用工厂方法。

65940
  • Cocoa编程中视图控制器与视图类详解

    选项卡类的方便之处就是不需要象导航栏那样栈的方式推入和弹出视图的操作,而是组建一系列的控制器(它们各自可以是UIViewController、UINavigationController、UITableViewController...1.作用: •创建和管理视图。 •管理视图上显示的数据。 •设备方向变化,调整视图大小适应屏幕。 •负责视图和模型之间的数据及请示的传递。 2....主要方法 • –loadView:不要主动调用该方法,当访问控制器view的时候,就会调用该方法。如果要自己创建view,则需要重写该方法。...• –viewDidLoad:当加载控制器的视图到内存时,该方法调用。...控制器加载视图过程 当调用视图控制器的view属性时,视图控制器会先调用loadView方法加载视图,因此,可以loadView方法中创建所有的视图,这是比较好的编程惯例。

    5.1K50

    iOS学习——UIPickerView的实现年月选择器

    ,首先是用一个基类来布局我们选择器的整体布局,包括我们的选择器的标题,取消、确定按钮,蒙层等大框架的布局,然后是子类基类的基础上添加UIPickerView来实现选择器的基本功能以及数据加载和显示。...对外暴露类方法也是避免使用者使用时需要创建对象,比较麻烦,也避免一些不必要的问题。...还有取消、确定按钮的点击事件也都在这里进行控制和实现,我们根据自己的需要进行这是就可以了,一般是点击确定按钮的时候调用我们的BRDateResultBlock,实现日期选择完成的操作。...30 [self initUI]; 31 } 32 33 return self; 34 } 35 36 //UI布局,主要就是弹出视图上添加选择器...,我们的子类向外就暴露了一个类方法,所以我们再需要弹出选择器的地方调用该方法就可以了。

    4.3K130

    Quartz2D复习(四) --- 图层CALayer和动画CAAnimation

    1、CALayer 1)、ios中,能看得见摸得着的东西基本上都是UIView, 比如按钮、文本标签、文本输入框、图标等,这些都是UIView 2)、UIView之所以能显示屏幕上,完全是因为它内部的一个图层...3)、创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层:@property (nonatomic,readonly,...retain) CALayer *layer; 4)、当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上,于是就完成了...如果想让图层保持显示动画执行后的状态,那就设置为NO,   不过还要设置fillMode为kCAFillModeForwards   fillMode : 决定当前对象非activate时间段的行为。...,而NSTimer无法确保计时器实际触发的准确时间   使用方法:   定义CADisplayLink并制定触发调用方法   将显示链接添加到主运行循环队列 3、代码演示 1)时钟器,和当前计算机时间同步

    1.4K30

    记录下UIButton的图文妙用和子控件的优先显示

    UIButton的用处特别多,这里只记录下把按钮应用在图文显示的场景,和需要把图片作为按钮的背景图片显示场景; 另外记录下在父控件的子控件优先显示方法(控件置于最前面和置于最后面)。...按钮图文设置、图文位置移动、按钮中图片翻转示例代码: /** 测试图文并茂的按钮,图文移动 */ - (void)addMoveImgAndTextButton{ //1、创建一个按钮:30x50...显示父控件的所有子控件的最前面 - (void)sendSubviewToBack:(UIView *)view;  //将子控件view显示父控件的所有子控件的最后面 示例代码: /** 测试子控件的优先显示...} /** 测试图文并茂的按钮,图文移动 */ - (void)addMoveImgAndTextButton{ //1、创建一个按钮:30x50 UIButton *iconBtn...以免更多的人误导。

    1.7K30

    Objective-C MapKit的使用-LBS简单的租车主界面demo效果分析代码demo地址

    写在前面 弄了下个人站...防止内容再次锁定...所有东西都在这里面 welcome~ 个人博客 效果 ?...效果.gif 分析 三个view:地图view、车辆信息view、车辆类型选择view 地图view:大头针的摆放,根据不同的种类显示大头针 车辆信息view:根据当前点击的大头针显示对应的车辆信息...车辆类型选择view:选择车辆类型 交互分析 选择车辆类型,地图上出现不同的大头针 车辆信息view可滑动,滑动完成后地图定位到当前车辆的大头针上 view的搭建 车辆选择view:自定义slider...dequeueReusableAnnotationViewWithIdentifier:carViewID]; if (annoView == nil) { //缓存池中没有则创建...didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } //collectionview 滚动结束后 调用

    1.9K40

    【iOS开发-22】navigationBar导航栏,navigationItem建立:获取导航栏中的基本文本和button以及各种跳跃

    UIButton *btn1=[UIButton buttonWithType:UIButtonTypeRoundedRect]; btn1.frame=CGRectMake(38,...视图上下左右居中显示标题的位置 UIView *textView1=[[UIView alloc]initWithFrame:CGRectMake(10, 10, 50, 30)];...后者赋值一个UIBarButtonItem对象,所以仅仅能显示一个 //显示顺序,左边:按数组顺序从左向右;右边:按数组顺序从右向左 //能够初始化成系统自带的一些barButton,...,这样视图也跟着变了,由于仅仅显示栈顶得那个视图控制器的视图 //所以(1)控制所谓的跳转。...:label1]; UIButton *btn2=[UIButton buttonWithType:UIButtonTypeRoundedRect]; btn2.frame=CGRectMake

    2.3K10

    iOS开发之多表视图滑动切换示例(仿头条客户端)

    Demo中对所需的组件进行的简单封装,封装的组件中使用的是纯代码的形式,如果想要在项目中进行使用,稍微进行修改即可。   ...点击相应的按钮是切换到对应的表视图上,下方红色的是滑动的指示器,同时支持手势滑动。运行具体效果如下图所示。 ? ? ?...回调中根据ContentOffset的值来计算红色指示器的偏移量。   ...19 20 ///@brife 下面滑动的View 21 @property (strong, nonatomic) UIView *slideView; 22 @end   2.初始化方法如下,调用初始化方法时需要传入...initSlideView]; 21 22 } 23 24 return self; 25 }     3.initDataSource方法主要负责模拟生成下方TableView要显示的数据

    3.7K60

    教你如何自定义AlertView

    本文就介绍如何自定义alertView,看完你就懂得制作属于自己的alertView了 一、创建DWAlert.swift 创建一个类名为DWAlert.swift,class DWAlert:...self.init(),所以得使用关键字convenence,使上述函数变成便利构造函数,具体看convenence介绍 三、alertView的显示与隐藏 1、show实现alertView显示...addSubview(self) } 上面代码介绍: 1、拿到当前显示的主窗口。 注意:主窗口一定得有,否则会崩。...里面实现,该方法会在当alertView即将加入主窗口时系统自动调用,详情请看UIView不可不知的秘密 override func willMove(toSuperview newSuperview...五、使用DWAlert ViewController创建一个按钮,并添加一个点击事件ClickMe,方法里面创建alertView @IBAction func ClickMe(_ sender:

    1.3K50

    iOS事件响应控制 原

    以前遇到一个项目,一个UIImageView对象上面有一个UIButton对象,然而项目的需求需要在点击 button的同时,UIImageView也接收到点击事件,不使用代理和通知方法的前提下...hitTest:withEvent:这个方法,这个方法会返回一个UIView的对象,这个方法执行的时候,它会调用当前视图的pointInside:withEvent:这个方法,如果触摸事件在当前视图范围内...例如:我们建两个文件,一个继承于UIButton,一个继承于UIImageView,我们UIImageView里的代码如下: #import "MyImageView.h" @implementation...} -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{     NSLog(@"点击了Image"); } 然后将他们创建在一个...2、寻找到应该响应的视图后,会进行消息处理,这个处理的方式是通过消息处理链来做的。

    54640

    1.注册或登录页面设计:UILabel,UIButton,UITextField

    作为iOS开发的入门总结的第一篇,这里最常见的注册或登陆页面设计作为开篇,这里主要会用到UILabel,UIButton,UITextField这三个控件。...一.注册或登录界面 如下图,实现了一个注册或登录界面,这里先只介绍单个页面,不介绍点击“完成”按钮后的动作,之后的系列《iOS开发入门总结》中会逐步介绍,等基础知识介绍的差不多了,就可以一个完整的注册系统作为小结...UIFont fontWithName:@"Arial" size:20.0f]; //设置字体颜色 text.textColor = [UIColor redColor]; //输入框中是否有个叉号,什么时候显示...[self.view addSubview:button1]; 单独说明一下: UIButton *confirmButton = [UIButton buttonWithType...这里是将method的方法指定给新建的这个confirmButton [self.view addSubview:confirmButton]; 若要设置UIButton的背景图片时:

    2.4K50

    两个宏快速计算九宫格X、Y坐标

    iOS绘制九宫格的方式至少有两种。一种是利用UIKit框架提供的UICollectionView直接定制一个九宫格。...另一种方式是根据行高、列宽动态计算每个格子的位置,后者这种纯计算的方式我们写一次就够了。今天我带给大家两个我写好的宏,以后制作九宫格,我们直接用这个宏即可!.../ COLUMN * HEIGHT + (SUPERVIEW.subviews.count / COLUMN + 1) * MARGIN 前提:使用这两个宏的前提是我们必须要把格子单独的放到一个父视图上...另外,使用这个宏时,一旦格子创建出来就必须加到superView中,不能等到所有的格子都创建好后再一起加到父视图。 上面第一个宏是可以计算每个格子的X坐标。第二个宏可以计算每个格子的Y坐标。...[backView addSubview:button]; CGFloat red = rand() % 255 / 255.f; CGFloat

    5.6K30

    奇怪的现象:touchesBegan: 与UITapGestureRecognizer手势没有人响应 以及set方法的妙用

    然后我试着 touchesBegin方法中 实现 [super touchesBegins....];依旧是没有任何反应。...无奈,又尝试着View视图上添加一个landBGView,来承载我想要显示的landKindView。 设置 landBGView 为控制器的View的尺寸,然会添加,到控制器的VIew上。...然后landBGView上添加手势,但是仍旧是没有反应,郁闷至极。。。 今天再次尝试了一下,居然就可以了(可能是自己修改了某些东西)。...View的叠放顺序 查看是否其他的控件挡住 <img src="https://img-blog.csdn.net/20160115104129525?...重写set方法来实现某些代码的简化, 主要是操作View的<em>显示</em>与隐藏(或者是刷新操作,网络请求之类的均可),主要是为了操作方便,集中处理细节问题 具体如下: //某按钮的 控制<em>显示</em>子View - (void

    58510
    领券