我新來客觀-C .. 我想的UILabels
設置動態大小(width
和height
)。我有一個UILabel
用它。如果一些文本的文本是大,應該正確顯示,如果它在亙古不變的契合那一行通過去其他行,如果數據完成,那麼只有下一個UILabels
數據應該開始,並且對於下一個UILabel
也是相同的概念。我怎樣才能得到它...?將動態大小設置爲xcode中的UILabels?
0
A
回答
1
以下是對viewcontroller.h文件
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController{
IBOutlet UITableView *dataTableView;
NSMutableArray *items;
}
@end
繼代碼爲viewcontroller.m文件的代碼
#import "ViewController.h"
#import <QuartzCore/QuartzCore.h>
#define FONT_SIZE 14.0f
#define CELL_CONTENT_WIDTH 320.0f
#define CELL_CONTENT_MARGIN 10.0f
@interface ViewController()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
items = [[NSMutableArray alloc] init];
[items addObject:@"Happiness is having a large, loving, caring, close-knit family in another city.\n\n\t\t-George Burns (1896 - 1996)"];
[items addObject:@"When I am abroad, I always make it a rule never to criticize or attack the government of my own country. I make up for lost time when I come home.\n\n\t\t-Sir Winston Churchill (1874 - 1965)"];
[items addObject:@"After two years in Washington, I often long for the realism and sincerity of Hollywood.\n\n\t\t-Fred Thompson, Speech before the Commonwealth Club of California"];
[items addObject:@"It is a profitable thing, if one is wise, to seem foolish.\n\n\t\t-Aeschylus (525 BC - 456 BC)"];
[items addObject:@"Bill Gates is a very rich man today... and do you want to know why? The answer is one word: versions.\n\n\t\t-Dave Barry"];
[items addObject:@"At the worst, a house unkept cannot be so distressing as a life unlived.\n\n\t\t-Dame Rose Macaulay (1881 - 1958)"];
[items addObject:@"It is curious that physical courage should be so common in the world and moral courage so rare.\n\n\t\t-Mark Twain (1835 - 1910)"];
[items addObject:@"The knowledge of the world is only to be acquired in the world, and not in a closet.\n\n\t\t-Lord Chesterfield (1694 - 1773), Letters to His Son, 1746, published 1774"];
[items addObject:@"What lies behind us and what lies before us are tiny matters compared to what lies within us.\n\n\t\t-Ralph Waldo Emerson (1803 - 1882), (attributed)"];
}
#pragma mark -
#pragma mark UITableView Delegaates
- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
{
return [items count];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
{
return 1;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
NSString *text = [items objectAtIndex:[indexPath row]];
CGSize constraint = CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 20000.0f);
CGSize size = [text 1="systemFontOfSize:FONT_SIZE" language="sizeWithFont:[UIFont"][/text] constrainedToSize:constraint lineBreakMode:NSLineBreakByWordWrapping];
CGFloat height = MAX(size.height, 44.0f);
return height + (CELL_CONTENT_MARGIN * 2);
}
- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell;
UILabel *label = nil;
cell = [tv dequeueReusableCellWithIdentifier:@"Cell"];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"] ;
label = [[UILabel alloc] initWithFrame:CGRectZero];
[label setLineBreakMode:NSLineBreakByWordWrapping];
[label setFont:[UIFont systemFontOfSize:FONT_SIZE]];
[label setNumberOfLines:0];
[label setFont:[UIFont systemFontOfSize:FONT_SIZE]];
[label setTag:1];
[[cell contentView] addSubview:label];
}
NSString *text = [items objectAtIndex:[indexPath row]];
CGSize constraint = CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 20000.0f);
CGSize size = [text 1="systemFontOfSize:FONT_SIZE" language="sizeWithFont:[UIFont"][/text] constrainedToSize:constraint lineBreakMode:NSLineBreakByWordWrapping];
if (!label)
label = (UILabel*)[cell viewWithTag:1];
[label setText:text];
[label setFrame:CGRectMake(CELL_CONTENT_MARGIN, CELL_CONTENT_MARGIN, CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), MAX(size.height, 44.0f))];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[dataTableView deselectRowAtIndexPath:[dataTableView indexPathForSelectedRow] animated:YES];
}
@end
Also Download Source code from here.
願這幫助了很多。
0
How to set label according to text but i want background color also
使用這個鏈接,在這裏你用「TEXTSIZE」設置您的標籤框架和backview
相關問題
- 1. 多動態大小的UILabels不顯示
- 2. 如何垂直佈置動態大小的UILabels?
- 3. 爲Asp:Chart控件設置動態大小
- 4. iphone爲UILabels設置了固定的字體大小
- 5. 將設置大小設置爲TreeSet
- 6. 將數字從UILabels中劃分爲小數 - xcode
- 7. 將輪播寬度動態設置爲窗口大小
- 8. Xcode:將不同高度的UILabels約束爲固定大小的容器
- 9. 具有動態設置大小的UITableView
- 10. 動態設置UICollectionViewCell的大小
- 11. 動態設置ImageView的大小Android
- 12. 用swift動態設置TableViewCell的大小
- 13. 的UITextView與滾動動態調整大小設置爲默認
- 14. UIScrollView動態設置頁面大小
- 15. c數組:動態設置大小?
- 16. WIA:設置動態頁面大小
- 17. 如何動態設置圖像大小?
- 18. 如何動態設置div大小?
- 19. 將小部件大小設置爲其他大小的一半
- 20. 將UIButton設置爲UICollectionViewCell的大小
- 21. 設置圖像資源的動態setImageResource設置大小
- 22. 動態設置指針爲int給予不正確的大小
- 23. 自動設置UIScrollView內容大小爲滾動顯示大小
- 24. 如何將scrollview的大小設置爲textview的大小?
- 25. 如何將IFRAME的大小設置爲容器的大小?
- 26. 動態調整UILabels
- 27. 將TextBlock的大小設置爲動態更改寬度的按鈕
- 28. 如何將Ext.field.TextArea大小設置爲沒有滾動條的文本的大小?
- 29. 如何將大小設置爲全屏?
- 30. 將字體大小設置爲窗口
點擊這裏給我的答案http://stackoverflow.com/a/12600584/1538079 –
可能重複[如何動態計算UILabel高度?](http://stackoverflow.com/questions/7174007/how-to-calculate-uilabel-height-dynamically) –