English 中文(简体)
- 想清理我的视野吗?
原标题:ios - Wanting to clean up my viewDidLoad Method

..

嗨 嗨 嗨 嗨 你好 你好 你好 你好 你好 Hi, Hi, Hi, Hi, Hi, Hi, Hi,

我想清理一下我的视野 是否Load方法,因为我 它正在增加 代码的行数 和它变得乱七八糟。.

现在,我的UI是按方案构建的, 因为我想学习这样做事的方式。.

So I read on this SO Post that I can set the UI items in a seperate -9void) method and then link to that void by using [self method]

现在当我用这种方式的时候 对我来说似乎行不通.

喜欢,如果我想设置后底颜色 这将有效:

- (void)viewDidLoad
 {
[super viewDidLoad];

self..view..backgroundColor = [UIColor colorWithRed:0..0 green:0..2 blue:0..38 alpha:1..0];
}

但这并不表示:

- (void)viewDidLoad
{
[super viewDidLoad];

[self backgroundColor];


// Do any additional setup after loading the view..
}

-(void)backgroundColor
{
UIView *backgroundView = [[UIView alloc] init]; 

backgroundView..backgroundColor = [UIColor colorWithRed:0..0 green:0..2 blue:0..38  alpha:1..0];
}

我误会了吗?

感谢预告:-)

最佳回答

我认为你误解了 观点/视图控制器的性质。

在这一行中:

self.view.backgroundColor = [UIColor colorWithRed:0.0 green:0.2 blue:0.38 alpha:1.0];

自定义指您正在装入的视图控制器,而视图则指该视图控制器拥有的视图。所以当您设置 self.view. backgroundColor 时,您会为您正在显示的视图控制器将展示的视图设置背景颜色。因此,这行得通。

另一方面,你的另一种方法 并没有做到:

UIView *backgroundView = [[UIView alloc] init]; 

该直线创建了全新的 UIView 实例, 并设置了背景颜色。 这是一个全新的视图, 与前面用 self. view 引用的不一样 。

如果您真的想要有一个独立的函数来改变您的背景颜色, 请像这样写入 :

-(void) setBackgroundColor
{
   self.view.backgroundColor = [UIColor colorWithRed:0.0 green:0.2 blue:0.38 alpha:1.0];
}

然后,您实际上是在修改属于视图控制器的视图,而更改实际上应该显示。


我还想建议,这一功能不是非常有用的;你正在创建一个包含一行绝对不会改变的代码的函数。

-(void) setBackgroundColor:(UIColor)newColor
{
   self.view.backgroundColor = newColor;
}

要使用此方法,您可以在您的视图中写入以下行, 并使用Load 方法 :

[self setBackgroundColor:[UIColor colorWithRed:0.0 green:0.2 blue:0.38 alpha:1.0]];

然后你可以再次调用SetBackformColor 随时随地, 将背景颜色改变为不同的值。

问题回答

您在二审中的 地底颜色 方法只是将背景颜色设置在一些不同的 UIView 对象上,这些对象被创建并泄漏。 (该方法的名称也不大 -- -- 它表示属性获取器,但实际上没有获得属性或返回任何信息。 )

问题在于您的方法背景颜色在被使用前没有被公布。 所以有三种方法可以绕过它

  1. Move your backgroundColor method above viewDidLoad
  2. Declare the backgroundColour as a public method in the @interface
  3. Create a private interface and declare backgroundColour

编号 3 示例:

@interace MyViewController (private) - (void)backgroundColor; @end

请注意,如果您的接口是任何仍然写入私人接口的(如上所示)东西的继承物。

也不要创建新视图, 只执行 [self.view backgroundColor:[UIColor 红色];





相关问题
List Contents of Directory in a UITableView

I am trying to list the contents of Ringtones directory in a TableView, however, I am only getting the last file in the directory in ALL cells, instead of file per cell. This is my code: - (...

iPhone NSUserDefaults persistance difficulty

In my app i have a bunch of data i store in the NSUserdefaults. This information consists of an NSObject (Object1) with NSStrings and NSNumbers and also 2 instances of yet another object (Object2). ...

Writing a masked image to disk as a PNG file

Basically I m downloading images off of a webserver and then caching them to the disk, but before I do so I want to mask them. I m using the masking code everyone seems to point at which can be found ...

Resize UIImage with aspect ratio?

I m using this code to resize an image on the iPhone: CGRect screenRect = CGRectMake(0, 0, 320.0, 480.0); UIGraphicsBeginImageContext(screenRect.size); [value drawInRect:screenRect blendMode:...

Allowing interaction with a UIView under another UIView

Is there a simple way of allowing interaction with a button in a UIView that lies under another UIView - where there are no actual objects from the top UIView on top of the button? For instance, ...

热门标签