uibutton 取消点击效果 btton.adjustsImageWhenHighlighted = NO;

本文介绍如何通过设置UIButton属性来取消按钮在被点击时的高亮显示效果。
在将 Swift 中使用 `UIStackView` 创建的垂直和水平布局以及按钮转换为 Objective-C 时,需要理解如何在 Objective-C 中创建和配置 `UIStackView`。以下是一个完整的示例,展示了如何在 Swift 中设置一个嵌套的 `UIStackView` 结构,并将其转换为等效的 Objective-C 代码。 ### Swift 原始代码(假设) ```swift // Swift 示例代码 let verticalStack = UIStackView() verticalStack.axis = .vertical verticalStack.distribution = .fillEqually verticalStack.spacing = 10 let horizontalStack1 = UIStackView() horizontalStack1.axis = .horizontal horizontalStack1.distribution = .fillEqually horizontalStack1.spacing = 10 let button1 = UIButton(type: .system) button1.setTitle("Button 1", for: .normal) let button2 = UIButton(type: .system) button2.setTitle("Button 2", for: .normal) horizontalStack1.addArrangedSubview(button1) horizontalStack1.addArrangedSubview(button2) let horizontalStack2 = UIStackView() horizontalStack2.axis = .horizontal horizontalStack2.distribution = .fillEqually horizontalStack2.spacing = 10 let button3 = UIButton(type: .system) button3.setTitle("Button 3", for: .normal) let button4 = UIButton(type: .system) button4.setTitle("Button 4", for: .normal) horizontalStack2.addArrangedSubview(button3) horizontalStack2.addArrangedSubview(button4) verticalStack.addArrangedSubview(horizontalStack1) verticalStack.addArrangedSubview(horizontalStack2) view.addSubview(verticalStack) verticalStack.translatesAutoresizingMaskIntoConstraints = false NSLayoutConstraint.activate([ verticalStack.centerXAnchor.constraint(equalTo: view.centerXAnchor), verticalStack.centerYAnchor.constraint(equalTo: view.centerYAnchor) ]) ``` ### 转换后的 Objective-C 代码 ```objective-c // Objective-C 转换代码 UIStackView *verticalStack = [[UIStackView alloc] init]; verticalStack.axis = UILayoutConstraintAxisVertical; verticalStack.distribution = UIStackViewDistributionFillEqually; verticalStack.spacing = 10.0f; UIStackView *horizontalStack1 = [[UIStackView alloc] init]; horizontalStack1.axis = UILayoutConstraintAxisHorizontal; horizontalStack1.distribution = UIStackViewDistributionFillEqually; horizontalStack1.spacing = 10.0f; UIButton *button1 = [UIButton buttonWithType:UIButtonTypeSystem]; [button1 setTitle:@"Button 1" forState:UIControlStateNormal]; UIButton *button2 = [UIButton buttonWithType:UIButtonTypeSystem]; [button2 setTitle:@"Button 2" forState:UIControlStateNormal]; [horizontalStack1 addArrangedSubview:button1]; [horizontalStack1 addArrangedSubview:button2]; UIStackView *horizontalStack2 = [[UIStackView alloc] init]; horizontalStack2.axis = UILayoutConstraintAxisHorizontal; horizontalStack2.distribution = UIStackViewDistributionFillEqually; horizontalStack2.spacing = 10.0f; UIButton *button3 = [UIButton buttonWithType:UIButtonTypeSystem]; [button3 setTitle:@"Button 3" forState:UIControlStateNormal]; UIButton *button4 = [UIButton buttonWithType:UIButtonTypeSystem]; [button4 setTitle:@"Button 4" forState:UIControlStateNormal]; [horizontalStack2 addArrangedSubview:button3]; [horizontalStack2 addArrangedSubview:button4]; [verticalStack addArrangedSubview:horizontalStack1]; [verticalStack addArrangedSubview:horizontalStack2]; [self.view addSubview:verticalStack]; verticalStack.translatesAutoresizingMaskIntoConstraints = NO; [self.view addConstraints:@[ [verticalStack.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor], [verticalStack.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor] ]]; ``` ### 关键点说明 - **初始化与属性设置**:Objective-C 和 Swift 在创建对象和设置属性方面略有不同,例如 `axis`、`distribution` 和 `spacing` 的设置方式。 - **添加子视图**:Objective-C 使用 `addArrangedSubview:` 方法来添加子视图,这与 Swift 中的方式相同[^1]。 - **约束管理**:Objective-C 中通过 `translatesAutoresizingMaskIntoConstraints` 设置为 `NO` 并手动添加 `NSLayoutConstraint` 来进行 Auto Layout 约束管理。 ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值