标签: interface-builder

Interface Builder是否向UITableViewCell的contentView添加元素?

读到现在,我已经了解到将UI元素添加到UITableViewCell的contentView是一个很好的做法.但通常,我看到这是使用代码完成的.我想知道如果使用Interface Builder添加仍然添加到contentView的元素?

iphone interface-builder uitableview ios

1
推荐指数
1
解决办法
2147
查看次数

如何通过编写Objective-C代码动态更改Inteface Builder xib文件?

今天我正在为iOS编写我的第一个"Hello World"应用程序.我想知道如何.xib以编程方式操作文件类似于Android XML布局文件或XAML?我还希望Interface Builder动态显示更改.例如我有一个.xib文件"LoginPageView.xib",其中我有按钮和我通过加入其他控制Interface Builder构造,然后我此连接.xib到专用class extension"LoginPageViewController".m文件中.现在我想以编程方式添加一个新按钮:UIButton *button = [[UIButton alloc] initWithCGRect:...];或者我想更改按钮的背景等等.

我知道的唯一方法是在viewDidLoad方法中实现它,但如果我这样做,我的更改将仅在程序运行时显示,并且我希望Interface Builder在编译之前动态显示这些更改.所以问题是Xcode IDE中有哪些方法可以实现这一点并说明如何执行此操作?

xcode objective-c interface-builder xib ios

1
推荐指数
1
解决办法
832
查看次数

Alloc-init UIStoryboard中的对象

考虑一种情况,即故事板文件中的对象链接到a IBOutlet,如下所示.

@property (nonatomic, strong) IBOutlet UIImageView *imageView;
Run Code Online (Sandbox Code Playgroud)

保留在自己的设备上,ViewController将很高兴地加载并在正确的框架内显示正确的图像,如Interface Builder中所确定的那样.但是,如果将以下代码添加到View Controller的viewDidLoad方法中,则会实现(显然)相同的结果.

- (void)viewDidLoad {
    _imageView = [[UIImageView alloc] init];
    //...
}
Run Code Online (Sandbox Code Playgroud)

这是否意味着程序化的alloc-initing IBOutlets是完全可选的?或者这条线的增加是否会产生略微不同的结果?

我问,因为我总是在实现中添加alloc-init,然后在我的最新项目中我忘记了它,令我惊讶的是,它仍然完全符合预期.

objective-c interface-builder ios uistoryboard

1
推荐指数
1
解决办法
562
查看次数

使用窗口调整自定义视图的大小

所以我已经看过几次这个问题了,但是没有找到解决我问题的答案.现在我基本上有MainMenu.xib,标签位于顶部,一个大的自定义视图和一个位于底部的按钮,用于切换自定义视图的子视图(见下图).我已经设置了窗口和自定义视图以在界面构建器中自动调整子视图,并且所有按钮,标签等都有将它们与视图侧面相关联的约束,但是当我调整窗口大小时,子视图的内容会执行没有调整大小.我认为自定义视图正在调整窗口大小,因为当我使用按钮切换子视图时,加载的子视图会随窗口调整大小,它们只是没有实时调整窗口大小.

MainMenu.xib:

正常子视图: 在此输入图像描述

窗口展开后: 在此输入图像描述

子视图切换然后切换回: 在此输入图像描述

约束:

MainMenu.xib: 在此输入图像描述

BlockViewController.xib: 在此输入图像描述

macos xcode objective-c interface-builder

1
推荐指数
1
解决办法
1583
查看次数

无法移动UIImageView

在XCode iPad应用程序中,我使用带有视图的故事板和内部的UIImageView,在Interface Builder中定义.如果我尝试使用SetFrame命令[myImageView setFrame:CgRectMake ...]更改UIImageView的位置,则图像不会更改屏幕上的位置.setFrame命令是否足够?谢谢.

xcode interface-builder uiimageview ios uistoryboard

1
推荐指数
1
解决办法
1026
查看次数

在Interface Builder上,将UILabel连接到自定义UIView IBOutlet

我正在开发一个带有最新SDK的iOS应用程序.

我创建了一个自定义类:

#import <UIKit/UIKit.h>

@interface UICustomView : UIView
{
    @private
    int _counter;
}

@property (nonatomic, weak) IBOutlet UILabel* textField;

@end
Run Code Online (Sandbox Code Playgroud)

在Storyboad上我添加了一个UIView并将其类更改为UICustomView.为此,UIView我添加了一个UILabel使用Interface Builder但现在我不知道如何将它UILabelIBOutlet自定义视图连接.

你知道我怎么办吗?

objective-c interface-builder iboutlet ios

1
推荐指数
1
解决办法
1935
查看次数

如何从XIB文件加载故事板?

我正在尝试在单击按钮时从XIB文件加载故事板文件.所以在IBAction方法中我调用了以下行:

- (IBAction)NextView:(id)sender
{
            UIStoryboard *mainStoryBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    [mainStoryBoard instantiateViewControllerWithIdentifier:@"StoryViewController"];
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行应用程序时,我收到此错误 Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Storyboard (<UIStoryboard: 0x88672d0>) doesn't contain a view controller with identifier 'StoryViewController''

我查看了人们在stackverflow上提出的其他问题,发现当一个人试图加载视图控制器的身份检查器中忘记将View控制器的标识符名称放入时,通常会抛出此错误.但我也这样做了.在故事板中,第一个正在加载的viewController是StoryViewController,我已将其标识符设置为相同.还有其他我可能会遗失的东西.请告诉我如何纠正它. 在此输入图像描述

iphone xcode interface-builder storyboard ios

1
推荐指数
1
解决办法
2887
查看次数

在故事板中支持多个屏幕尺寸(3.5和4英寸屏幕)

我正在尝试创建一个适用于3.5和4英寸iPhone的tic tac toe应用程序.但是,我没有成功地在故事板中找到如何做到这一点.我在使用XIB文件时找到了该选项,但在使用故事板时找不到模拟指标选项.有没有办法让应用程序在任一屏幕尺寸上使用时自动调整大小?感谢任何响应的人.

interface-builder ios

1
推荐指数
1
解决办法
8039
查看次数

IOS - 使用Interface Builder设计UITableView Cell的最佳方式

嘿,我已经阅读了一些关于样式细胞的教程和文章.由于界面构建器的样式功能有限,我被迫研究其他方法,并且在尝试找到以编程方式设置在界面构建器中创建的UITableViewCell的正确方式时,会留下相互矛盾的感觉.一些源直接在cellForRowAtIndexPath其他源中设置样式,建议在.m中为UITableViewCell类执行此操作.在设置样式时我遇到了一些性能问题,cellForRowAtIndexPath所以现在我在类.m文件中设置样式.以下是样式的代码:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];

    if (self)
    {
        NSLog(@"test!");

        _nameLabel.font = [UIFont fontWithName:@"Gotham Light" size:16];
        _locationLabel.font = [UIFont fontWithName:@"Gotham Light" size:14];
        _titleLabel.font = [UIFont fontWithName:@"Gotham Light" size:12];

        [_thumbnailUserImage.layer setCornerRadius:24];
        [_thumbnailUserImage.layer setBorderWidth:2];
        [_thumbnailUserImage.layer setBorderColor:[[UIColor whiteColor] CGColor]];
        [_thumbnailUserImage.layer setMasksToBounds:YES];
        self.contentView.backgroundColor = [UIColor colorWithRed:(247/255.0) green:(245/255.0) blue:(242/255.0) alpha:1];
    }

    return self;
}
Run Code Online (Sandbox Code Playgroud)

这是我创建每个cellForRowAtIndexPath的地方:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    User *user;
    ContactsCell *cell = [[ContactsCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
    cell = (ContactsCell *)[tableView dequeueReusableCellWithIdentifier:@"ContactsCell"]; …
Run Code Online (Sandbox Code Playgroud)

interface-builder uitableview ios

1
推荐指数
1
解决办法
2080
查看次数

Xcode 5 Storyboard在以编程方式创建新VC时未创建UIViewController布局

我一直在尝试使用新的xcode 5 storyboard范例,而不是专门创建.xib文件.我有两个VC - 第一个是由Xcode创建的,第二个是通过将UIViewController放入InterfaceBuilder创建的.

我的问题是,即使我给了我的第二个VC一个自定义类并将头文件导入第一个VC,当我以编程方式创建第二个VC时,它不符合我在InterfaceBuilder中设置的设计.第一个是.

我创建第二个VC的代码是这样的(它在ImagePickerControllerDelegate方法中):

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage *chosenImage = [info objectForKey:UIImagePickerControllerEditedImage];

    NCPhotoViewController *newController = [[NCPhotoViewController alloc] init];
    newController.theImage = chosenImage;
    ** NEW CODE newController.theImageView.image = newController.theImage;

    [self dismissViewControllerAnimated:YES completion:^{
        [self presentViewController:newController animated:YES completion:NULL];
    }];
Run Code Online (Sandbox Code Playgroud)

......看起来很好,做了我想要的 - 带来了一个新的视图控制器.事实是,它没有加载我在IB中设置的布局.我尝试交换alloc] init]方法,initWithNibName:bundle:但意识到我没有笔尖...有没有办法在IB中建立这种连接而不创建.xib文件,或者我误解了Xcode 5的新流程?我知道Identity Inspector中有一个Storyboard ID属性,但是如何使用它呢?如果他们没有被默认放在那里,我不想做"旧方式"的事情......

TL; DR - 我希望我的IB布局的ViewController能够在Xcode 5默认故事板流程中以编程方式调用它的方式.

添加了一些代码,使新的viewcontroller的imageview有一个图像,但它没有出现...

编辑:我不得不添加self.theImageView.image = theImage;viewDidLoad方法在我的新viewcontroller.h文件-但不应该它已经做到这一点的代码,我写的吗?

interface-builder storyboard uiviewcontroller ios xcode5

1
推荐指数
1
解决办法
4413
查看次数