图片第一~~
ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
{
IBOutlet UILabel *textview;
}
- (IBAction)randomWords:(id)sender;
@end
ViewController.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
-(IBAction)randomWords:(id)sender {
int ran = arc4random() % 6;
switch (ran) {
case 0:
textview.text = @"Cat";
break;
case 1:
textview.text = @"Dog";
break;
case 2:
textview.text = @"Fish";
break;
case 3:
textview.text = @"Horse";
break;
case 4:
textview.text = @"Bird";
break;
case 5:
textview.text = @"Test";
break;
default:
break;
}
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
我放的标签框没有显示任何信息。 有什么问题或者我离开了什么吗?
标签的自定义类是带有StoryBoard Hello的UIControllerView
。
任何人都可以帮助我,所以当他们重定向到应用程序时,它会随机生成一条消息。
答案 0 :(得分:2)
所以使用此代码进行测试:
-(IBAction)randomWords:(id)sender {
dispatch_async ( dispatch_get_global_queue ( DISPATCH_QUEUE_PRIORITY_BACKGROUND , 0 ), ^{
int ran = arc4random() % 6;
dispatch_async ( dispatch_get_main_queue (), ^ {
switch (ran) {
case 0:
textview.text = @"Cat";
break;
case 1:
textview.text = @"Dog";
break;
case 2:
textview.text = @"Fish";
break;
case 3:
textview.text = @"Horse";
break;
case 4:
textview.text = @"Bird";
break;
case 5:
textview.text = @"test";
break;
default:
textview.text = @"Said";
break;
}
});
});
}
答案 1 :(得分:1)
我真的不知道textview
如何添加到主视图中。如果通过Storyboard
,你应该这样做
@property (nonatomic, weak) UBOutlet UILabel *textview;
然后将此出口链接到您的Storyboard
标签,以便使用此属性。
第二种解决方案是使用viewDidLoad
方法创建标签,如下所示:
-(void)viewDidLoad
{
[super viewDidLoad];
textview = [[UILabel alloc]initWithFrame:CGRectMake(5,5,self.view.frame.size.width -10,100)];
textview.numberOfLines = 10;
[self.view addSubview:textview];
}
目前您的参考文献没有指向屏幕上的对象。 希望这可以帮助您理解为什么您的标签不显示您的文字。
答案 2 :(得分:0)
可能是您的代码与故事板之间的部分或全部连接未被连接起来。
在viewcontroller.h中,最好像这样引用你的标签:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel * textview;
@end
您需要将该标签与故事板相关联,并且您可以通过检查@property ...行左侧的圆圈是否已填写来判断是否存在。
对于“randomWords”按钮, - (IBAction)语句左侧还有一个圆圈。如果没有填写,您需要将该按钮的“touch up inside”事件连接到该方法。
最后,您还可以尝试
arc4random_uniform(6)
作为一种保证从随机数生成器获得整数的方法。