我正在尝试以编程方式构建UI.如何让这个动作起作用?我正在与Swift一起开发.
viewDidLoad中的代码:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let myFirstLabel = UILabel()
let myFirstButton = UIButton()
myFirstLabel.text = "I made a label on the screen #toogood4you"
myFirstLabel.font = UIFont(name: "MarkerFelt-Thin", size: 45)
myFirstLabel.textColor = UIColor.redColor()
myFirstLabel.textAlignment = .Center
myFirstLabel.numberOfLines = 5
myFirstLabel.frame = CGRectMake(15, 54, 300, 500)
myFirstButton.setTitle("?", forState: .Normal)
myFirstButton.setTitleColor(UIColor.blueColor(), forState: .Normal)
myFirstButton.frame = CGRectMake(15, -50, 300, 500)
myFirstButton.addTarget(self, action: "pressed", forControlEvents: .TouchUpInside)
self.view.addSubview(myFirstLabel)
self.view.addSubview(myFirstButton)
}
func …Run Code Online (Sandbox Code Playgroud) 我想以编程方式将多个UIButtons添加到视图中 - 编译时未知的按钮数.
我可以像这样制作一个或多个UIButton(在一个循环中,但为了简单而缩短):
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self
action:@selector(buttonClicked:)
forControlEvents:UIControlEventTouchDown];
[button setTitle:@"Button x" forState:UIControlStateNormal];
button.frame = CGRectMake(100.0, 100.0, 120.0, 50.0);
[view addSubview:button];
Run Code Online (Sandbox Code Playgroud)
复制/编辑此链接: 如何以编程方式创建基本UIButton?
但是如何在buttonClicked中确定:单击了哪个按钮?如果可能的话,我想传递标签数据来识别按钮.
我有一个UIButton我在IB中添加的,但是这个按钮后面的视图会改变颜色,我需要在InfoDark和InfoLight之间切换按钮的类型.但奇怪的是,buttonType财产是只读的.那么如何在明暗信息按钮之间切换?
如何以编程方式向按钮添加操作.我需要在mapView中为按钮添加show动作.谢谢
let button = UIButton(type: UIButtonType.Custom) as UIButton
Run Code Online (Sandbox Code Playgroud) 我有一个UIViewController包含它UIView的UIButton.我想UIViewController在按钮点击事件中触发一个方法.
保持参考UIViewController似乎不是一个好主意,如下面的链接说:
从UIView获取UIViewController?
所以我想使用委托来实现这个目标.有关如何实现这一点的任何提示?
这是我在这里遇到的问题的延续(仍未解决):链接
但这可能有助于了解问题所在.我只创建了一个简单的测试项目('Empty Application')并添加了一个带有XIB文件的视图控制器(复选框:'选择了用户界面的XIB文件').代码如下所示:
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"didLoad: %@",NSStringFromCGRect(self.view.bounds));
// Do any additional setup after loading the view from its nib.
}
-(void) viewDidAppear:(BOOL)animated
{
NSLog(@"didAppear: %@",NSStringFromCGRect(self.view.bounds));
}
Run Code Online (Sandbox Code Playgroud)
这是输出:
2013-07-26 17:05:28.502 testtest[5926:c07] didLoad: {{0, 0}, {320, 548}}
2013-07-26 17:05:28.506 testtest[5926:c07] didAppear: {{0, 0}, {320, 460}}
Run Code Online (Sandbox Code Playgroud)
他们怎么会有所不同?
(ps.我在6.1模拟器上测试)
我试图找到为什么自定义UIButton集合不起作用.在我之前的文章中描述的版本中,我在Swift 3中以编程方式创建了一个UIButton圆圈,并将圆圈固定在屏幕的中心.该版本使用了UIView的子类 - 基于Apple Swift教程(实现Button Action) - 以及利用Imanou Petit优秀代码示例(No.6 Anchor)的autolayout实现.在那个版本中,我设法让我的按钮在iPhone旋转时成功旋转,但按钮动作目标无法工作.
所以我现在尝试使用viewcontroller而不是UIView的子类的替代版本.这次相同的按钮动作目标有效,但旋转手机会使图像偏离中心,如下所示.
每次旋转时,以下消息也会在Xcode的调试区域中出现两次.
***[App] if we're in the real pre-commit handler we can't
actually add any new fences due to CA restriction***
Run Code Online (Sandbox Code Playgroud)
该消息在四个中发生三次,即当手机上下颠倒时没有消息.当我运行上一篇文章中的代码或下面显示的代码时,会发生这种情况.并且在每种情况下,"倒置"框是否已选中或未选中都没有区别.
我也试过禁用OS_ACTIVITY MODE但除了隐藏可能解释问题的消息之外什么都没改变.更有经验的人比我有希望认识一下这个调试消息无论是在我以前的代码(上下文意思此处所示)或我最新的代码,如下图所示.
原始代码
import UIKit
class ViewController: UIViewController {
// MARK: Initialization
let points: Int = 10 // 80 25 …Run Code Online (Sandbox Code Playgroud) 我正在开发一款涉及很多表格的iPhone应用程序.目前我为每个设置页面都有一个ViewController类,其中有一个UITableView加载了可能的设置.当有人点击某个设置时,他们会被带到新视图以输入表单值,或者允许他们输入适当的内容.
保持干燥的最佳方法是什么?这个实现的哪些部分可以实现一次并重新使用?
当有人点击进入新视图的设置选项时,如何创建此视图并根据代码中的数据类型(uitextfield或picker或其他内容)添加文本字段?
我想以编程方式自定义UIButton.我的代码从这里开始:
class MyButton: UIButton {
override func awakeFromNib() {
super.awakeFromNib()
layer.shadowRadius = 5.0
...
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想为按钮定义一个恒定的宽度和高度,如何在代码中做到这一点?
我搜索了所有的互联网,似乎每个关于这个主题的帖子都遗漏了我需要的一条重要信息.无论人们告诉我做什么,我都无法摆脱关于我的按钮操作方法的所有/任何事情的"未声明的标识符"错误.我已经选择了这么多的代码,以至于它完全被顶起来了.任何人都可以告诉我我需要做什么才能做出正确的互动按钮?用于viewcontroller的.m文件和.h文件中的所有内容?
请不要认为我已经有了一些重要的代码,因为我可能没有.我是Objective-c的新手.
谢谢!!!!!!!!(顺便说一下,这是ipad,我正避免使用故事板)谢谢!! 我在这一点上非常沮丧.
到目前为止,这是我的代码
UIButton *add = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[add addTarget:self action:@selector(aMethod:) forControlEvents:UIControlEventTouchDown];
[add setTitle:@"add new" forState:UIControlStateNormal];
add.frame = CGRectMake(100, 100, 100, 100);
[objects addSubview:add];
- (void)aMethod:(UIButton*)button
{
NSLog(@"Button clicked.");
}
Run Code Online (Sandbox Code Playgroud)
而问题并不在于它运行,然后崩溃,问题是,我不能运行它,只要开始,因为我有这个错误"使用未声明的标识符的'amethod方法’"
ios ×7
iphone ×5
uibutton ×5
objective-c ×4
swift ×4
cocoa-touch ×2
autolayout ×1
swift3 ×1
uiview ×1
xcode ×1