有没有办法让Facebook按钮在UITableView中正确显示?

时间:2010-02-25 20:01:39

标签: iphone api facebook sdk

我正在尝试在我的iPhone应用中使用Facebook Connect功能。 我想知道如何在我的UITableView中正确排列按钮:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    if (indexPath.section == 0){
        if (indexPath.row == 0){

        }
    }
    if (indexPath.section == 1){
        if (indexPath.row == 0){
            cell.textLabel.text = @"Connect with Facebook";
            cell.accessoryView = login;

        }
    }

    return cell;

我尝试过使用accessoryView,但结果如下: alt text http://i50.tinypic.com/14mxa0z.png

此按钮仅在我点按单元格时显示。

如果可以,请帮忙!

感谢。

3 个答案:

答案 0 :(得分:1)

IMHO最简单的布局大多数静态UITableView的方法是使用InterfaceBuilder。

答案 1 :(得分:0)

accessoryView肯定会被绑定到右边,因为“附件”通常指的是打开新页面等的表格单元右侧的小的expando箭头小部件。

如果将该按钮添加为单元格视图的子视图,则可以对单元格的布局产生很大影响,并将FB按钮放在任何位置。你应该看看this sample project,它演示了如何完成一大堆自定义单元格类型。

答案 2 :(得分:0)

我刚刚遇到了这个同样的问题。我的工作代码如下:

FBLoginButton* fbbutton = [[FBLoginButton alloc] initWithFrame:CGRectMake(cellwidth - 30.0 - 10.0,
                                                                          (cellheight - 30.0) / 2.0,
                                                                          90.0, 30.0)];
fbbutton.style = FBLoginButtonStyleNormal;
fbbutton.session = session;

cell.accessoryView = fbbutton;
cell.textLabel.text = @"Facebook";
[fbbutton release];

(显然我使用常量而不是硬编码Facebook按钮的大小。)

按钮放置的两个关键位是设置框架并将按钮添加到accessoryView。 (将其添加到contentView也可以使用,但您可能需要手动添加标题。)

对于仅按下按钮时出现的按钮,我设法通过明确设置按钮样式来修复它。我猜这是Facebook Connect库中的一个错误。