我有一個項目列表,我想在UITableViewCell中顯示。現在,我只是用逗號分隔每個值的cell.textLabel,但我想做一些更動態的事情。如何顯示UILabels數組?
我將如何實現這樣的目標?
它會是在邊界和半徑上的UILabels數組嗎?
感謝您的想法。
我有一個項目列表,我想在UITableViewCell中顯示。現在,我只是用逗號分隔每個值的cell.textLabel,但我想做一些更動態的事情。如何顯示UILabels數組?
我將如何實現這樣的目標?
它會是在邊界和半徑上的UILabels數組嗎?
感謝您的想法。
這是一個可能的快速簡單的方法來做到這一點。它基於您可以獲得的代碼here。
請注意,您必須將QuartzCore框架添加到您的項目幷包含在您編寫此代碼的文件中!
每個UIView都支持CALayer。您可以使用.layer屬性獲取UIView的CALayer。由於UILabel是一個UIView,你可以通過這種方式獲得它的支持層。一旦你有了背景層,你可以設置它的backgroundColor,cornerRadius,borderColor和borderWidth屬性。這應該讓你創建圓角的效果。
要獲得居中效果,請嘗試將UILabel的textAlignment設置爲UITextAlignmentCenter。然後,您可以嘗試基於sizeThatFits設置UILabel的框架,或者可以基於對放入標籤的字符串調用sizeWithFont。
下面是一些快速,完全未經測試的代碼,讓你開始。
假設你已經初始化一個UIFont的地方如下(把你想要的任何字體大小)。
labelFont = [UIFont systemFontOfSize:14];
然後,對於每個標籤,將其設置爲follows.I'm假設你拉出來的文本數組並投入一個名爲「文本」變量。 X_PADDING和Y_PADDING是標籤文本週圍的空間距離。 xLoc和yLoc是您用來跟蹤要放置標籤的x和y位置的變量。我們會根據TEXTSIZE + X_PADDING + LABEL_SPACING什麼的可能會增加XLOC(這裏定義LABEL_SPACING):
CGSize textSize = [text sizeWithFont:labelFont];
CGRect frame = CGRectMake(xLoc, yLoc,
textSize.width + X_PADDING,
textSize.height + Y_PADDING);
UILabel *label = [[UILabel alloc] initWithFrame:frame];
label.text = text;
label.textAlignment = UITextAlignmentCenter;
CALayer *layer = label.layer;
layer.masksToBounds = YES;
layer.cornerRadius = 7.0; // or whatever works for you
layer.borderWidth = 1.0;
layer.borderColor = [[UIColor redColor].CGColor;
layer.backgroundColor = [UIColor blueColor].CGColor;
// Add the layer into its superview
[yourSuperview addSubview:label];
我希望這有助於讓你開始。
謝謝!在這裏實現了按鈕與幾個視覺調整!http://stackoverflow.com/questions/4941940/best-way-to-avoid-memory-leaks-for-multiple-buttons-in-uitableviewcell – monotreme 2011-02-24 00:02:05