ios在按钮单击时更改背景

Posted

技术标签:

【中文标题】ios在按钮单击时更改背景【英文标题】:ios change background on button click 【发布时间】:2011-08-14 07:22:59 【问题描述】:

我目前只有界面构建器布局

我不清楚从布局中引用所有这些项目的语法

我知道IBOutlet 必须在某个地方使用,但我需要更多地了解这个目标 C 正在做什么。我读过的任何东西都没有告诉我为什么有些声明以 + 开头,而另一些则以 -

我想要做的是在我的布局中单击一个按钮,弹出一个模式视图并更改整个布局的背景。

所以第一步是引用我在笔尖中制作的所有这些项目。帮助? (或发布您了解的更直观教程的链接)

【问题讨论】:

【参考方案1】:

所以你可能想为你的背景视图创建一个 IBOutlet。也许它是一个 UIImageView,您可以根据用户在模态视图中选择的内容来设置它的图像属性。为此,您只需声明您在 IB 文件中的 UIImageView

UIImageView *imageView;

然后将其声明为属性

@property (nonatomic,retain)IBOutlet UIImageView *imageView;

并在你的 .m 文件中合成它

@synthesize imageView;

如果您不使用 ARC,请不要忘记释放它。

然后您可以打开界面生成器,如果您单击视图控制器文件的所有者并转到连接检查器,您将看到那里有一个用于 imageView 的新连接。只需将该连接拖到 IB 文件中的 UIImageView 即可。现在,您的代码中有一个连接到 IB 中的 UIImageView 的引用。

这将允许您通过键入类似的内容在代码中设置 UIImageView

self.imageView.image = [UIImage imageNamed:theNameTheUserJustPicked];

为了获得模态视图,您需要一个 IBAction 来触发代码中的方法,因此请在主 nib 的 .h 文件中声明一个这样的方法。

- (IBAction)displayViewBackgroundChooser;

然后在你的 .m 文件中定义它。

- (IBAction)displayViewBackgroundChooser 
    //present your new view on screen here

然后返回界面生成器并再次单击文件所有者。您应该在连接检查器中看到它,然后您可以将它连接到一个按钮,例如,这将触发该方法。

希望这有助于澄清一些关于 IBOutlets 和 IBActions 的问题。

【讨论】:

我要更改背景,但无法弹出其他视图,从所需的新视图的笔尖单击和拖动不会连接到我的主视图控制器中的任何内容 你不想将任何东西连接到你想要的新笔尖,你想连接到你的主笔尖中的东西,这将触发你的代码中的一个方法来在屏幕上显示新的笔尖。您在新笔尖中唯一需要做的就是将其关闭并将选择的信息传递回主笔尖。 //present your new view on screen here 如何使新视图出现,我尝试了应该初始化的self.displayViewBackgroundChooser;。我看不到按钮上的 IBAction 将如何引用此视图 您在 IB 中创建的视图是否有自定义 UIViewController 子类?您必须有一个。说它是BackgroundChooserViewController。然后在 displayBackgroundChooser 方法中,像这样创建一个:BackgroundChooserViewController *bcvc = [[BackgroundChooserViewController alloc] init];现在您已经创建了它,您可以将它推送到屏幕上。 [self presentModalViewController:bcvc 动画:YES];【参考方案2】:

您可以通过IBOutletsIBActions 使您在IB 中创建的UI 元素与您的代码进行交互。

在您的情况下,我会将一个动作与按钮相关联,以便在单击按钮时触发它;该操作将打开一个模态视图,您可以在关联控制器的 viewDidLoad 方法中更改该视图的背景。

Here 您可以找到有关添加插座的视频教程。和here,动作也一样。

关于你对+和-的疑问,-标识了一个类中定义的普通方法; + 定义了一个类方法,即一个可以直接在类上调用的方法,而不必先实例化它。更多信息请查看S.O. article。

【讨论】:

以上是关于ios在按钮单击时更改背景的主要内容,如果未能解决你的问题,请参考以下文章

单击另一个按钮时更改按钮背景

单击按钮时更改布局背景颜色

JTable:单击按钮时更改单元格背景

MVVM 在单击时更改网格的背景颜色

单击按钮时更改按钮的背景颜色[重复]

在按钮单击时更改 div 的背景颜色